我将翻译以下内容:
我想检查单词“random”是否存在。感谢任何帮助。
我有一个包含一些文本的变量。我想检查这些文本中是否有某个单词。
例如:
var myString = 'This is some random text';
我想检查单词“random”是否存在。感谢任何帮助。
我有一个包含一些文本的变量。我想检查这些文本中是否有某个单词。
例如:
var myString = 'This is some random text';
如果您想特别测试单词“random”,您可以使用以下正则表达式:
var myString = 'This is some random text';
var word = 'random';
var regex = new RegExp( '\\b' + word + '\\b' );
var result = regex.test( myString );
这样就不会匹配包含"random"的单词,例如"randomize"。
当然,如果你愿意,也可以将其原型化为String:
示例:http://jsfiddle.net/JMjpY/1/
String.prototype.containsWord = function( word ) {
var regex = new RegExp( '\\b' + word + '\\b' );
return regex.test( this );
};
myString.containsWord( "random" );
function contains(str, text) {
return str.indexOf(text) >= 0);
}
if(contains(myString, 'random')) {
//myString contains "random"
}
或者通过原型扩展:
String.prototype.contains = String.prototype.contains || function(str) {
return this.indexOf(str) >= 0;
}
if(myString.contains('random')) {
//myString contains "random"
}
>= 0
忽略它。如果没有找到任何内容,indexOf_将返回-1_。 - Xavier Boubert关于Jacob的问题,'contains'函数中缺少一个左括号。
return str.indexOf(text) >= 0);
应该是
return (str.indexOf(text) >= 0);
我选择了Patrick的答案,并将其改编成了一个函数
function InString(myString,word)
{
var regex = new RegExp( '\\b' + word + '\\b' );
var result = regex.test( myString );
return( result );
}
var ManyWords='This is a list of words';
var OneWord='word';
if (InString(ManyWords,OneWord)){alert(OneWord+' Already exists!');return;}
new RegExp( '\\s|\\b' + word + '\\s|\\b' );
,但是如果字符串包含-5 degrees
,那么搜索5 degrees
时将会得到一个正结果。 - user113716new RegExp( '(\\s|\\b)' + word + '(\\s|\\b)' )
。 - user113716