var str = "Hello World +1 new test Good Morning";
var subStr = "+1 new test";
我希望代码片段仅在字符串 str 中找到整个短语(即“+1 new test”)时返回 true。我尝试过正则表达式和匹配、搜索、测试选项。但是,没有人为我工作。它显示“+”错误。
下面是我正在使用的 -
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 new test"时返回 true,当 subStr = ""+1 new te"时返回 false(即在部分短语的情况下)。
最佳答案
使用includes() ES6 中的函数,以及 indexOf()在ES5
includes
- 如果 subStr
位于 str
中,将返回 true
。
indexOf
- 如果未找到匹配项,将返回 -1
;如果找到 subStr
,将返回 index
,从 subStr
开始的地方开始。
示例
var str = "Hello World +1 new test Good Morning";
var subStr = "+1 new test";
console.log(str.includes(subStr)); // ES6
console.log(str.indexOf(subStr) !== -1); // ES5
关于javascript - 如何使用 javascript 查找字符串中的确切子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41670443/