Javascript 正则表达式与换行减号
这是我的密码Javascript 正则表达式与换行减号,javascript,regex,Javascript,Regex,这是我的密码 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
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>'
);
});
var字符串='number1+number2-number3';
var运算符=[
{o:'+',正则表达式:'\\+'},
{o:'-',正则表达式:'\\-'}
];
$。每个(运算符,函数(i,运算符){
string=string.replace(
新的RegExp(operator.regex,“g”),
''运算符+o''
);
});
我的CSS类被替换了两次。如何更改正则表达式?如果不需要运算符数组本身,可以使用单个正则表达式:
string=string.replace(/[+-]/g,operator=>“”+operator+“”)代码>
(否则,可以基于运算符本身构建此表达式)
PS,第二次替换发生是因为
编辑:动态构建表达式的示例:
var string = 'number1 + number2 - number3';
var operators = ['+','-'];
string = string.replace(
new RegExp('[' + operators.join('') + ']', "g"),
o => '<span class="formula-operator">' + o + '</span>');
var字符串='number1+number2-number3';
变量运算符=['+','-'];
string=string.replace(
新的RegExp('['+运算符.join(''+']',“g”),
o=>''+o+'';
您可以使用lookaheads来确保我们不在span标记内
var operators = [
{o: '+', regex: '\\+(?![^<]*</span>)'},
{o: '-', regex: '\\-(?![^<]*</span>)'}
];
var运算符=[
{o:'+',regex:'\\+(?![^ПГcrmk_,var操作符=[{o:'+',regex:'\+(?![^@WiktorStribiżew,是的,很好。谢谢。仅供参考:不需要在这个字符类中转义+
和-
这只是一个例子。在现实生活中,我有许多其他的替代品。正则表达式字符串可以使用任何类型的集合构建(尽管您当前的问题可以通过使用另一个类名,例如公式\运算符来解决
)。我添加了一个带有运算符数组的示例。如果需要,也可以使用带有额外映射的原始数组。