Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 如何在找到正则表达式匹配项后添加字符_Javascript_Regex - Fatal编程技术网

Javascript 如何在找到正则表达式匹配项后添加字符

Javascript 如何在找到正则表达式匹配项后添加字符,javascript,regex,Javascript,Regex,我想在字符串中的数学表达式中添加一个右括号 var str = "solve this now Math.sqrt(345+6 is good but Math.sin(79 is better."; var patt1 = /\((d+)/g; var result = str.match(patt1); document.getElementById("demo").innerHTML = result; 匹配模式显示(345和(79)。在不更改内容的情况下,如何添加右括号使字符串看起

我想在字符串中的数学表达式中添加一个右括号

var str = "solve this now Math.sqrt(345+6 is good but Math.sin(79 is better."; 
var patt1 =  /\((d+)/g;
var result = str.match(patt1);
document.getElementById("demo").innerHTML = result;
匹配模式显示(345和(79)。在不更改内容的情况下,如何添加右括号使字符串看起来像

var str = " solve this now Math.sqrt(345)+6 is good but Math.sin(79) is better.

使用否定的先行断言

var str=“现在就解决这个问题。Math.sqrt(345+6)很好,但Math.sin(79)更好。”;

console.log(str.replace(/(\(\d+)\b(?!\)/g,“$1)”)
检查在数字后面是否有一个左括号,而不是右括号

var str = "solve this now Math.sqrt(345+6 is good but Math.sin(79 is better.";
var output = str.replace( /\([\d]+(?!=\))/g, r => r + ")");
输出

现在用数学来解决这个问题。sqrt(345)+6是好的,但是数学。sin(79)更好

演示

var str=“现在就解决这个问题。Math.sqrt(345+6)很好,但Math.sin(79)更好。”;
变量输出=str.replace(/\([\d]+(?!=\)/g,r=>r+”);

console.log(output);
您能解释一下r=>表示什么,以及它可能如何添加结束括号吗?它是否是一个常数,与(?!=)r是replacer函数的参数成对出现。