较短的正则表达式,按2个条件拆分,外部有空格
Shorter regex to split by 2 criteria with spaces outside
例如,我有一个包含:'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' ]
仅在[^'d-]+
上拆分。这是一个否定类,它匹配除数字和-
之外的任何内容
> '2014-12 to 1251255, 123123'.split(/[^'d-]+/)
['2014-12','1251255','123123']
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- HTML表单提交时未执行外部函数
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 使用html中的外部javascript进行数据验证
- 将变量传递给外部Javascript
- 使用javascript在Flash中加载外部图像
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 拆分单词jquery
- 如何更改reactjs中外部/独立组件的状态或属性
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何从外部页面激活非默认引导选项卡
- 如何在运行时在angular 2中加载外部js脚本
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 单击元素外部时进行JQuery
- 我的外部js文件无法加载
- 拆下外部分配器
- 将字符串拆分为数组时出现JavaScript错误
- 较短的正则表达式,按2个条件拆分,外部有空格
- 自动完成(外部XML数据)将属性拆分为单独的字段
- 如何将HTML字符串拆分为多个片段并剥离外部标记