我有一个包含一些文字的var。我想检查文本是否有某个词。
示例:
var myString = 'This is some random text';
我想检查“随机”这个词是否存在。谢谢你的帮助。
答案 0 :(得分:6)
如果你想专门测试“随机”这个词,你可以使用这样的正则表达式:
示例: http://jsfiddle.net/JMjpY/
var myString = 'This is some random text';
var word = 'random';
var regex = new RegExp( '\\b' + word + '\\b' );
var result = regex.test( myString );
这样就不会匹配“随机”是“随机化”之类的单词的一部分。
如果您愿意,当然可以将其原型化为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" );
答案 1 :(得分:5)
您可以使用独立功能执行此操作:
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"
}
答案 2 :(得分:2)
关于雅各布, “包含”功能中缺少“打开括号”。
return str.indexOf(text) >= 0);
应该是
return (str.indexOf(text) >= 0);
我选择了Patricks Answer并将其改编为功能
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;}
这将返回False,因为尽管变量ManyWords中存在“words”,但此函数仅显示“word”的完全匹配。