Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-Regex-用不同的字符串替换字符串中的每一个匹配项_Javascript_Regex - Fatal编程技术网

Javascript-Regex-用不同的字符串替换字符串中的每一个匹配项

Javascript-Regex-用不同的字符串替换字符串中的每一个匹配项,javascript,regex,Javascript,Regex,我的代码是这样的: for (var i = 0; i < str.length; i++) { str = str.replace("|", "Math.abs("); str = str.replace("|", ")"); } 您可以匹配|s之间的字符串,然后用所需的字符串替换它们 str[i] = str[i].replace(/\|(.*?)\|/g, "Math.abs($1)"); 比如说, var str = ["|1|", "|-2|+|22 * -3

我的代码是这样的:

for (var i = 0; i < str.length; i++) {
    str = str.replace("|", "Math.abs(");
    str = str.replace("|", ")");
}

您可以匹配
|
s之间的字符串,然后用所需的字符串替换它们

str[i] = str[i].replace(/\|(.*?)\|/g, "Math.abs($1)");
比如说,

var str = ["|1|", "|-2|+|22 * -3|"];
for (var i = 0; i < str.length; i++) {
    str[i] = str[i].replace(/\|(.*?)\|/g, "Math.abs($1)");
}
console.log(str);
# [ 'Math.abs(1)', 'Math.abs(-2)+Math.abs(22 * -3)' ]
var str=[“|1 |”、“|-2 |+|22*-3 |”];
对于(变量i=0;i
您可以使用此单一正则表达式
替换方法:

str = str.replace(/\|([^|]+)\|/g, 'Math.abs($1)');

[i]是什么意思?@Murplyx
str[i]
是访问数组中索引
i
处的元素。如果有多个“|…|”类似于str[0]=“|-2 |+| 22*-3 |”@Murplyx您只需包括全局修饰符,如更新的示例中所示。
str = str.replace(/\|([^|]+)\|/g, 'Math.abs($1)');