var str = "Hello World +1 new test Good Morning";
var subStr = "+1 new test";
我希望代码片段仅在字符串str中找到整个短语(即“+1 new test”)时才返回true。我已经尝试过regEx和匹配,搜索,测试选项。但是,没有人为我工作。它显示错误的'+'。如何使用javascript在字符串中查找确切的子字符串
下面是我使用的是什么 -
var HVal = "Hello World +1 Good"
var HValNew = HVal.toString().toUpperCase();
var probStr = "Hello World";
var test = probStr.toUpperCase();
var re = new RegExp('\\b'+test+'\\b');
re.test(HValNew);
这工作时probStr是包含字母数字字符的字符串,但是当它有特殊字符如失败“+”,“?”
我发现我的答案词组匹配
var str = "Hello World +1 new test Good Morning".toString().toUpperCase();
var subStr = "+1 new test".toString().toUpperCase();
escapeSpecialChars = function(string) {return string.replace(/[-\/\\^$*+?.()|[\]{}]/g, 'x')};
var probStr = escapeSpecialChars(subStr);
var strNew = escapeSpecialChars(str);
var re = new RegExp("\\b"+probStr+"\\b");
re.test(strNew);
这回真的当SUBSTR =“+1新的测试”和假当SUBSTR =“” + 1新TE”(即在部分短语的情况下, )
'str.indexOf(SUBSTR)> -1' – Satpal
'+'在正则表达式有特殊的意义,你需要逃避使用' \ +' – Viney
我只是建议浏览一下['String']的文档(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String),并且学习这些方法,这将帮助你解决这个问题,以及将来会遇到的更多问题。 – 2017-01-16 06:26:21