var str = '张三,李四,王五,赵六';
请问下 , split里的正则怎么写, 才能使结果为['张三,','李四,','王五,','赵六']
也就是名字后面有逗号的, 切出来的数组的每一项要带着这个逗号。
我现在的方法是切出来之后, 再操作数组,给除最后一项的每一项加逗号。 有没有用正则可以直接搞出来的方法!
var str = '张三,李四,王五,赵六';
请问下 , split里的正则怎么写, 才能使结果为['张三,','李四,','王五,','赵六']
也就是名字后面有逗号的, 切出来的数组的每一项要带着这个逗号。
我现在的方法是切出来之后, 再操作数组,给除最后一项的每一项加逗号。 有没有用正则可以直接搞出来的方法!
不能。
正则不是万能的,它只能做匹配、并由此延申出替换、分割、查找,除此之外的都不能做。
你这个想要强行用正则的话只能做两次,一次替换一次分割:
'张三,李四,王五,赵六'.replace(/,/g, ',|').split(/[|]/g);
效率和可读性还不如你 map
呢。
补充:忘了还有非捕获元的用法 =.=,下面 @Bestime 的回答是对的。但非捕获元都是贪婪的,效率比较差。如果不是确定长度的输入尽量慎用贪婪匹配。
13 回答13k 阅读
7 回答2.1k 阅读
5 回答1.5k 阅读
3 回答1.3k 阅读✓ 已解决
5 回答1.6k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决