例如,我有一个包含以下内容的字符串:'2014-12 to 1251255, 123123'
,而我想获取2014-12
,1251255
和123123
。这是正确的:
> '2014-12 to 1251255, 123123'.split( /\s*,\s*|\s*to\s*/ );
[ '2014-12', '1251255', '123123' ]
但是
regex
比上面的短吗?我当然尝试过:
> '2014-12 to 1251255, 123123'.split( /\s*(,|to)\s*/ );
[ '2014-12', 'to', '1251255', ',', '123123' ]
> '2014-12 to 1251255, 123123'.split( /\s*,|to\s*/ );
[ '2014-12 ', '1251255', ' 123123' ]
> '2014-12 to 1251255, 123123'.split( /\s*[,|to]\s*/ );
[ '2014-12', '', '1251255', '123123' ]
> '2014-12 to 1251255, 123123'.split( /\s*[,|(to)]\s*/ );
[ '2014-12', '', '1251255', '123123' ]
最佳答案
只需使用匹配功能匹配一个或多个数字或连字符即可。
> '2014-12 to 1251255, 123123'.match(/[\d-]+/g)
[ '2014-12', '1251255', '123123' ]
要么
> '2014-12 to 1251255, 123123'.match(/\d+(?:-\d+)?/g)
[ '2014-12', '1251255', '123123' ]
关于javascript - 正则表达式较短,可以按2个条件进行拆分,且外部有空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29294120/