现在有类似/:wx/:dx/:am/:am/:ss/:tx/:ck/:fd/:kbz/:bin
这样的字符串,需要把每个以 /:开头的后面连着字母的字符串提取出来,需要怎么做?
var str = "/:wx/:dx/:am/:am/:ss/:tx/:ck/:fd/:kbz/:bin"
var pat1 = /(\/:[a-zA-Z]+)+/g;
var pat2 = /(\/:[a-zA-Z]+)+/
pat1.exec(str)
pat2.exec(str)
都只能取一个,我现在需要把所有的都取出来,应该怎么做?
1
malcolmyu 2016-01-17 15:06:16 +08:00 1
str.match(/(\/:[a-zA-Z]+)/g)
|
2
FrankFang128 2016-01-17 15:23:01 +08:00
exec 是一个一个取的,除非你用 while
|
3
ljcarsenal OP |
4
ericshine 2016-01-17 15:25:22 +08:00
直接用 split 不就好了。
|
5
surgit 2016-01-17 15:46:17 +08:00
split('/:') 最好。
|
6
tinyhill 2016-01-17 16:00:33 +08:00
'/:wx/:dx/:am/:am/:ss/:tx/:ck/:fd/:kbz/:bin'.match(/(\:[a-z]+)/g)
|
7
master13 2016-01-18 09:26:14 +08:00
- -明显 split ……除非是故意想学习正则表达式,怎么会想到用这么复杂的办法……
|
8
ljcarsenal OP @master13 这些字符串是一个个表情,有可能表情后面直接跟着文字, split 文字也会跟过来
|