gpt4 book ai didi

javascript - 正则表达式和换行减号

转载 作者:行者123 更新时间:2023-11-30 12:04:23 25 4
gpt4 key购买 nike

这是我的代码。

var string = 'number1 + number2 - number3';
var operators = [
{o: '+', regex: '\\+'},
{o: '-', regex: '\\-'}
];

$.each(operators, function(i, operator){
string = string.replace(
new RegExp(operator.regex, "g"),
'<span class="formula-operator">' + operator.o + '</span>'
);
});

我的 CSS 类被替换了两次。我应该如何更改我的正则表达式?

最佳答案

如果您不需要运算符数组本身,您可以使用单个正则表达式:

string = string.replace(/[+-]/g, operator => '<span class="formula-operator">' + operator + '</span>');

(否则这个表达式可以基于运算符本身构建)

PS,第二次替换发生是因为您在 - 中有一个匹配项 ( <span class="formula-operator"> )


编辑:动态构建表达式的示例:

var string = 'number1 + number2 - number3';
var operators = ['+','-'];

string = string.replace(
new RegExp('[' + operators.join('') + ']', "g"),
o => '<span class="formula-operator">' + o + '</span>');

关于javascript - 正则表达式和换行减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35632326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com