我正在尝试使用 split()
方法拆分字符串
,但它区分大小写,问题如标题上所示。
问题是这样的
var str, ret;
str = "NubNubLabaLabaNubNub";
ret = str.split("labalaba"); // ret return ["NubNubLabaLabaNubNub"]
// which i wanted ["NubNub","NubNub"]
当我使用toLowerCase()
或toUpperCase()
时,整个字符串
将会改变,分割后我希望它是一个原始的一个。
str = "NubNubLabaLabaNubNub";
ret = str.toLowerCase().split("labalaba".toLowerCase());
ret
返回 ["nubnub","nubnub"]
但我想要的结果是 ["NubNub","NubNub"]
我仍然不明白如何将“nubnub”
返回到“NubNub”
谢谢。
最佳答案
您可以使用不区分大小写的正则表达式:
const str = "NubNubLabaLabaNubNub";
console.log(
str.split(/labalaba/i)
);
如果要分割的字符串位于变量中,escape it首先,然后将其传递给new RegExp
:
const escape = s => s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
const str = "abcfoo()barabc";
const splitOn = 'foo()bar';
const re = new RegExp(escape(splitOn), 'i');
console.log(
str.split(re)
);
关于Javascript - Incasesensitif split() 而不使用 toLowerCase() 或 toUpperCase(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53001138/