(Redirected from () Contains ()? (disambiguation))

"() Contains ()" redirects here. For the list 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 not case-sensitive.

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

Case Sensitivity

This block is not case sensitive. For example:

<[apple banana] contains [apple]?> // reports true
<[apple banana] contains [APPLE]?> // reports true
<[apple banana] contains [Apple]?> // reports true

Special Cases

If the second Argument is empty, this block will always report true.

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
Cookies help us deliver our services. By using our services, you agree to our use of cookies.