2

在 javascript if...else 语句中,是否可以检查变量是否包含值,而不是检查变量是否等于 (==) 值?

var blah = unicorns are pretty;
if(blah == 'unicorns') {};       //instead of doing this,
if(blah includes 'unicorns') {}; //can i do this?

此外,它包含的单词应该是变量的第一个单词。谢谢!!!

4

3 回答 3

2

如果“第一个单词”是指从字符串开头到第一个空格的字符序列,那么它会这样做:

if  ((sentence + ' ').indexOf('unicorns ') === 0) {
    //         note the trailing space ^
} 

如果可以是任何空白字符而不是空格,则应使用正则表达式:

if (/^unicorns(\s|$)/.test(sentence)) {
    // ...
}

// or dynamically
var search = 'unicorns';
if (RegExp('^' + search + '(\\s|$)').test(sentence)) {
    // ...
}

您还可以使用特殊的单词边界字符,具体取决于您要匹配的语言:

if (/^unicorns\b/.test(sentence)) {
    // ...  
}

更多关于正则表达式。


相关问题:

于 2013-03-01T00:29:07.220 回答
1
if(blah.indexOf('unicorns') == 0) {
    // the string "unicorns" was first in the string referenced by blah.
}

if(blah.indexOf('unicorns') > -1) {
    // the string "unicorns" was found in the string referenced by blah.
}

indexOf

要删除第一次出现的字符串:

blah = blah.replace('unicorns', '');
于 2013-03-01T00:20:48.243 回答
1

您还可以使用快速正则表达式测试:

if (/unicorns/.test(blah)) {
  // has "unicorns"
}
于 2013-03-01T00:25:42.813 回答