例如,我有一个包含以下内容的字符串:'2014-12 to 1251255, 123123',而我想获取2014-121251255123123。这是正确的:

> '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/

10-15 07:42