我正在尝试使用string
方法拆分split()
,但是它区分大小写,问题与标题中键入的相同。
问题是这样的
var str, ret;
str = "NubNubLabaLabaNubNub";
ret = str.split("labalaba"); // ret return ["NubNubLabaLabaNubNub"]
// which i wanted ["NubNub","NubNub"]
当我使用toLowerCase()
或toUpperCase()
时,整个string
将会改变,并且在拆分之后,我希望它成为原始的。
str = "NubNubLabaLabaNubNub";
ret = str.toLowerCase().split("labalaba".toLowerCase());
ret
返回["nubnub","nubnub"]
,但我想要的结果是["NubNub","NubNub"]
我仍然不明白如何将"nubnub"
返回到"NubNub"
谢谢。
答案 0 :(得分:5)
您可以改用不区分大小写的正则表达式:
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)
);