如果变量包含

Sea*_*ins 30 javascript variables if-statement

可能重复:
JavaScript:字符串包含

我有一个邮政编码变量,并希望在更改/输入邮政编码时使用JS将位置添加到另一个变量中.因此,例如,如果输入ST6,我希望输入Stoke North.

我不知何故需要做一个if语句来运行例如

if(code contains ST1)
{
    location = stoke central;
}
else if(code contains ST2)
{
    location = stoke north;
} 
Run Code Online (Sandbox Code Playgroud)

等等...

我该怎么做?它不会检查'code'是否等于一个值,但如果它包含一个值,我认为这是我的问题.

cle*_*ort 42

你可能想要 indexOf

if (code.indexOf("ST1") >= 0) { ... }
else if (code.indexOf("ST2") >= 0) { ... }
Run Code Online (Sandbox Code Playgroud)

它检查变量中是否contains有任何位置.这需要是一个字符串.如果您希望此解决方案不区分大小写,则必须使用或更改大小写.stringcodecodeString.toLowerCase()String.toUpperCase()

您也可以使用switch类似的语句

switch (true) {
    case (code.indexOf('ST1') >= 0):
        document.write('code contains "ST1"');
        break;
    case (code.indexOf('ST2') >= 0):
        document.write('code contains "ST2"');        
        break;        
    case (code.indexOf('ST3') >= 0):
        document.write('code contains "ST3"');
        break;        
    }?
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 11

你可以使用正则表达式:

if (/ST1/i.test(code))
Run Code Online (Sandbox Code Playgroud)

  • +1 表示不区分大小写 (2认同)

jba*_*bey 5

检查字符串是否包含另一个字符串的最快方法是使用indexOf

if (code.indexOf('ST1') !== -1) {
    // string code has "ST1" in it
} else {
    // string code does not have "ST1" in it
}
Run Code Online (Sandbox Code Playgroud)