JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用.match(regex)的JavaScript拆分字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
从Mozilla Developer Network获取功能split():

请看以下示例:

var String1 = 'one,two,three,four';
var splitString1 = String1.split(',');
console.log(splitString1); // Outputs ["one","two","three","four"]

这是一个非常干净的方法.我尝试使用正则表达式和稍微不同的字符串:

var String2 = 'one split two split three split four';
var splitString2 = String2.split(/\ split\ /);
console.log(splitString2); // Outputs ["one","four"]

这与第一个例子一样有效.在下面的示例中,我再次更改了字符串,使用了3个不同的分隔符:

var String3 = 'one split two splat three splot four';
var splitString3 = String3.split(/\ split\ |\ splat\ |\ splot\ /);
console.log(splitString3); // Outputs ["one","four"]

但是,正则表达式现在变得相对混乱.我可以对不同的分隔符进行分组,但结果将包括这些分隔符:

var String4 = 'one split two splat three splot four';
var splitString4 = String4.split(/\ (split|splat|splot)\ /);
console.log(splitString4); // Outputs ["one","split","splat","splot","four"]

所以我尝试在离开组时从正则表达式中删除空格,但没有多大用处:

var String5 = 'one split two splat three splot four';
var splitString5 = String5.split(/(split|splat|splot)/);
console.log(splitString5);

然,当我删除正则表达式中的括号时,分隔符在分割字符串中消失了:

var String6 = 'one split two splat three splot four';
var splitString6 = String6.split(/split|splat|splot/);
console.log(splitString6); // Outputs ["one "," two "," three "," four"]

另一种方法是使用match()来过滤掉分隔符,除了我真的不明白反向前瞻是如何工作的:

var String7 = 'one split two split three split four';
var splitString7 = String7.match(/((?!split).)*/g);
console.log(splitString7); // Outputs ["one ","","plit two ","plit three ","plit four",""]

它与整个单词不匹配.说实话,我甚至不知道这里到底发生了什么.

如何在不使用结果中的分隔符的情况下使用正则表达式正确分割字符串?

解决方法

使用非捕获组作为拆分正则表达式.通过使用非捕获组,拆分匹配将不包含在结果数组中.
var String4 = 'one split two splat three splot four';
var splitString4 = String4.split(/\s+(?:split|splat|splot)\s+/);
console.log(splitString4);
// Output => ["one","four"]

大佬总结

以上是大佬教程为你收集整理的使用.match(regex)的JavaScript拆分字符串全部内容,希望文章能够帮你解决使用.match(regex)的JavaScript拆分字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。