javascript - 在javascript中忽略正则表达式中的空格和不同大小写的最佳方法是什么

标签 javascript regex

我正在使用正则表达式查找某个字符串在另一个字符串中的所有出现,同时忽略任何空格和不同的大小写。

下面是我当前的代码:

var str = word.substring(0,1)+"\\s*";
for (var i = 1; i < word.length - 1; i++) str = str + word.substring(i,i+1)+"\\s*";
str = str + word.substring(word.length - 1,word.length);
var regEx = new RegExp(str, "gi");

一个例子是 if var word = "foobar":

var word = "foobar";
var str = word.substring(0,1)+"\\s*"; // declares the string as "f\\s*"
for (var i = 1; i < word.length - 1; i++) str = str + word.substring(i,i+1)+"\\s*"; // will add every character together with \\s* to 'str' like this: "f\\s*o\\s*o\\s*b\\s*a\\s*"
str = str + word.substring(word.length - 1,word.length); // will add the last character without \\s* like this: "f\\s*o\\s*o\\s*b\\s*a\\s*r"
var regEx = new RegExp(str, "gi"); // outputs /f\s*o\s*o\s*b\s*a\s*r/gi

这是可行的,但感觉不是解决问题的最佳方法。如果有人对此有更好的解决方案,我将不胜感激。

最佳答案

您可以使用splitjoin 来简化这个:

var word = "foobar";
var regex = new RegExp(word.split('').join('\\s*'), 'gi');
//=> /f\s*o\s*o\s*b\s*a\s*r/gi

关于javascript - 在javascript中忽略正则表达式中的空格和不同大小写的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36508682/

相关文章:

mysql - 我如何在 MYSQL 中基于十六进制代码进行 REGEXP 搜索?

regex - 在 RStudio 的查找和替换功能中使用正则表达式将捕获的组替换为小写

javascript - 在 javascript 中匹配 @(\w+) 并替换

python - 如何从字符串中删除所有 IRC 颜色代码

javascript - 如何根据我的ajax请求设置选项值?

javascript - 在循环中运行时 undefined object ,但在顺序执行时未定义

javascript - 如何将jquery代码转换为函数?

javascript - jQuery AJAX JSON 自动刷新使用动画显示数据不起作用

javascript - 未调用 getJSON 回调

javascript - 如何使用正则表达式在输入小数时保留 0 起始字符?