JavaScript 字符串按正则表达式结果分割子字符串包含空切片

2024-01-07

我有以下字符串分割 JavaScript 代码:

var formula = "(field1 + field2) * (field5 % field2) / field3";
console.log(formula.split(/[+(-)% *\/]/));

而结果却出乎意料:

["", "field1", "", "", "field2", "", "", "", "", "field5", "", "", "field2", "", "", "", "field3"]

期望的结果是什么:

["field1", "field2", "field5", "field2", "field3"]

我使用 Google Chrome 11 正式版作为测试浏览器,请告知我做错了什么。

谢谢你!

William


而不是分裂/[+(-)% *\/]/拆分为多个:/[+(-)% *\/]+/。您仍然可能在开始和结束时得到空匹配。要解决该问题,您可以使用类似的正则表达式进行替换:

formula.replace(/^[+(-)% *\/]+|[+(-)% *\/]+$/g, "").split(/[+(-)% *\/]+/)

So

var formula = "(field1 + field2) * (field5 % field2) / field3";
console.log(formula.replace(/^[+(-)% *\/]+|[+(-)% *\/]+$/g, "").split(/[+(-)% *\/]+/));

yields

field1,field2,field5,field2,field3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 字符串按正则表达式结果分割子字符串包含空切片 的相关文章

随机推荐