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