如何检查javascript变量中是否存在文本
我有一个包含一些文本的变量。我想检查课文中是否有某个单词 例如:如何检查javascript变量中是否存在文本,javascript,Javascript,我有一个包含一些文本的变量。我想检查课文中是否有某个单词 例如: var myString = 'This is some random text'; 我想检查一下“随机”这个词是否存在。谢谢您的帮助。您可以通过一个独立的功能来完成: function contains(str, text) { return str.indexOf(text) >= 0); } if(contains(myString, 'random')) { //myString contains "
var myString = 'This is some random text';
我想检查一下“随机”这个词是否存在。谢谢您的帮助。您可以通过一个独立的功能来完成:
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"
}
如果要专门测试单词“random”,可以使用如下正则表达式: 示例: 这样,它就不会匹配“random”是“randomize”一词的一部分的位置
当然,如果您愿意,可以将其原型化为字符串: 示例: 关于雅各布, “contains”函数中缺少一个左括号 应该是
return (str.indexOf(text) >= 0);
我选择了Patricks Answer,并将其改编为一个函数 例子 使用
var ManyWords='This is a list of words';
var OneWord='word';
if (InString(ManyWords,OneWord)){alert(OneWord+' Already exists!');return;}
这将返回False,因为尽管变量ManyWords中存在“words”,但此函数仅显示“word”的精确匹配。我一直在使用此函数,但它似乎对某些字符不起作用,例如:-5度(带负号返回False)有什么想法需要修复吗?@Ricky:可以执行
新建RegExp('\\s|\\b'+word+'\\s|\\b')
,但是如果字符串包含-5度
,如果搜索5度
,它会给出一个肯定的结果。现在似乎总是返回true。@Ricky:我忘了对它们进行分组。new RegExp('(\\s|\\b)+word+'(\\s|\\b)]
。如果搜索的单词是文本的第一个,则将忽略该单词,如果未找到任何内容,则返回-1的索引将被忽略。
return str.indexOf(text) >= 0);
return (str.indexOf(text) >= 0);
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;}