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!]
else
    say [Nope!]
end

Workaround

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)
        end
        if <(j) > (length of (string2))> then
            set [result v] to [true]
            stop [this script v]
        end
    end
end

References

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