This article is about the operators block. For the lists block, see () Contains ()? (List block).
() Contains ()?
() contains ()?
Category Operators
Type Boolean
Introduced in 3.0

The () contains ()? block is a boolean block and an operators block. The block returns whether or not the first parameter's text contains the second parameter's text. The comparison is case-insensitive.

Example Uses

Checking whether input contains a certain string - useful for soft-checking as the actual input may not be exactly identical:

when green flag clicked
switch costume to (bunny v)
ask [What's this animal?] and wait
if <(answer) contains [bunny]?> then // the contains block is used instead of equal to because the user might say "a bunny"
    say [Correct!]
    say [Nope!]


Main article: List of Block Workarounds
define (string1) contains (string2)::custom
set [i v] to [0]
set [j v] to [1]
repeat (length of (string1))
    change [i v] by (1)
    if <(letter (i) of (string1)) = (letter (j) of (string2))> then
        set [j v] to [1]
        repeat until <<not <(letter ((i) + (j)) of (string1)) = (letter (j) of (string2))>> or <(j) > (length of (string2))>>
            change [j v] by (1)
        if <(j) > (length of (string2))> then
            set [result v] to [true]
            stop [this script v]


Cookies help us deliver our services. By using our services, you agree to our use of cookies.