JavaScript正则表达式为字符串中的每个项目添加空格
JavaScript regex add space for each item in a string
我有这个正则表达式来检测某些字符并在该字符之前或之后添加空格,以便我可以使用 .split(" ")
将它们存储在数组中。这个正则表达式有简化的形式吗?
2*5--4/2 = 2 * 5 - -4/2
((1+5)*2/1) = ( ( 1 + 5 ) * 2/1 )
var infix = $input.val()
.replace(/('-'d+)(-)/g, "$1 $2 ")
.replace(/('-)('-'d+)/g, " $1 $2")
.replace(/([+/*^()])/g, " $1 ")
.replace(/'s+/g, " ")
据我了解,您正在尝试添加空格,因此您可以拆分它们。相反。您可以使用保留拆分字符的 split 版本(通过将它们包含在一个组中)直接拆分为数组。对于拆分正则表达式,请指定数字序列(带有可选的前导减号),或者不指定任何内容。这将导致额外的空白字符串,因此请使用过滤器将其删除。
function split(s) {
var number_or_nothing = /(-?['d.]+|)/;
function non_empty(x) { return /'S/.test(x); }
return s.split(number_or_nothing) . filter(non_empty);
}
> split("2*5--4/2")
< ["2", "*", "5", "-", "-4", "/", "2"]
> split("((1+5)*2/1)")
< ["(", "(", "1", "+", "5", ")", "*", "2", "/", "1", ")"]
相关文章:
- 使用方法将扫描的项目添加到总数中
- 如何将项目添加到Highcharts图例中
- 如何将多个项目添加到列表中
- 将项目添加到动态列表
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- Yeoman/Grunt:向项目添加子目录
- 将项目添加到篮式过滤器与Splice ReactJS Javascript
- 通过Jquery将项目添加到HTML Select
- 向每个堆叠条形图项目添加链接
- 微风:将项目添加到复杂类型的数组中
- 运行并向nodejs项目添加单元测试
- React Redux将项目添加到列表中会转移到其他创建的列表中
- 谷歌表单:将项目添加到响应中
- react.js每n个项目添加一个开始标签或结束标签
- jquery appendTo将多个项目添加到一个容器中
- Javascript window.open() 多次将项目添加到购物车
- 在 ReactJs 状态上将项目添加到数组中,并超时以进行自我删除
- 如何将项目添加到选定的追加列表 jQuery
- 动态将项目添加到精彩弹出库
- 无论如何可以将项目添加到 DOM 中的现有列表中