javascript - 如何使用 javascript 查找字符串中的确切子字符串

标签 javascript regex string

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/

相关文章:

regex - 为旧 Perl 版本重写递归正则表达式

string - Rust 的 `String` 和 `str` 有什么区别?

javascript - 如何剪辑从 getImageData() 函数获取的图像?

javascript - 动态墙更新: NodeJS

javascript - 函数语句与函数表达式奇怪的行为

c# - 需要从c#中的字符串中提取列名

jQuery 验证 : How to add a rule for regular expression validation?

regex - Perl - 如何从文本文件中省略行?

C++ 正确读取 Unicode 字符可能大于一个字节的文件

javascript - 在 NodeJS 的 required() 所需的脚本内使用函数