Javascript 使用正则表达式获取括号内的字符串,删除括号

Javascript 使用正则表达式获取括号内的字符串,删除括号,javascript,regex,string,Javascript,Regex,String,我有这两条线 var str1 = "this is (1) test"; var str2 = "this is (2) test"; 并希望编写一个正则表达式来提取括号内的内容,如“1”和“2”中所示,以生成如下字符串 var str3 = "12"; 现在我有一个正则表达式,它也返回括号 var re = (/\((.*?)\)/g); var str1 = str1.match(/\((.*?)\)/g); var str2 = str2.match(/\((.*?)\)/g);

我有这两条线

var str1 = "this is (1) test";
var str2 = "this is (2) test";
并希望编写一个正则表达式来提取括号内的内容,如
“1”
“2”
中所示,以生成如下字符串

var str3 = "12";
现在我有一个正则表达式,它也返回括号

var re = (/\((.*?)\)/g);

var str1 = str1.match(/\((.*?)\)/g);
var str2 = str2.match(/\((.*?)\)/g);

var str3 = str1+str2; //produces "(1)(2)"
尝试:

这将捕获括号内一个或多个数字的任意数字

例如:

编辑:在本例中,您将看到replace字段只有数字,而没有括号——这是因为捕获组
$1
只捕获数字本身

编辑2:

试着这样做:

var str1 = "this is (1) test";
var str2 = "this is (2) test";

var re = /[a-zA-Z0-9\s]+\((\d+)\)[a-zA-Z0-9\s]+/;

str1 = str1.replace(re, "$1");
str2 = str2.replace(re, "$1");

console.log(str1, str2);
像这样

Javascript

var str1 = "this is (1) test",
    str2 = "this is (2) test",
    str3 = str1.match(/\((.*?)\)/)[1] + str2.match(/\((.*?)\)/)[1];

alert(str3);

(x) 匹配x并记住匹配。这些被称为捕获 括号

例如,/(foo)/匹配并记住“foo bar”中的“foo” 可以从结果数组的元素中调用匹配的子字符串 ,…,[n]或从预定义的RegExp对象的属性$1, …9美元

捕获组将受到性能惩罚。如果你不需要 要调用的匹配子字符串,首选非捕获括号 (见下文)

试试这个

    var re = (/\((.*?)\)/g);

    var str1 = str1.match(/\((.*?)\)/g);
    var new_str1=str1.substr(1,str1.length-1);
    var str2 = str2.match(/\((.*?)\)/g);
    var new_str2=str2.substr(1,str2.length-1);

    var str3 = new_str1+new_str2; //produces "12"
的可能副本应为str2.substr(1,str2.length-2)
    var re = (/\((.*?)\)/g);

    var str1 = str1.match(/\((.*?)\)/g);
    var new_str1=str1.substr(1,str1.length-1);
    var str2 = str2.match(/\((.*?)\)/g);
    var new_str2=str2.substr(1,str2.length-1);

    var str3 = new_str1+new_str2; //produces "12"