js怎么用正则表达获取圆括号中的内容?

var str="deleteChild(236737)";
比如获取到圆括号中的数字 236737 其它不要。
js正则怎么写。
js数组太麻烦了。因为圆括号的中间数字会有变化的。

阅读 25.1k
7 个回答

使用 \d+ 表示任意整整。 为了匹配到特殊位置的内容,还用到了正则表达式中group的概念(在正则表达式中表现出来就是被一对小括号括起来)。

javascript正则表达式快捷的表示方式是 用“/”括起来, 比如 /正则表达式内容/,它有个exec方法,传入参数为待检查的字符串。
exec方法执行结果返回一个数组或者null值(str中没有符合正则表达式的内容时)。

如果正则表达式中含有group, 并且也匹配到了内容,那么返回结果数组中,group表示的文本内容会出现在结果数组的第2个数组元素和以后的数组元素中(当正则表达式中含有多个group时)。

var str = "deleteChild(236737)";
var result = /\((\d+)\)/.exec(str);

if(result.length > 1) {  //加这个判断是以防字符串中没有匹配的内容,那么result[1]会抛错!
   console.log("您想要的结果是:" +result[1]); //输出 236737。 
} else {
   console.log("字符串中没有符合条件的数字");
}
var number = "deleteChild(236737)".replace(/.*\((\d+)\)$/, '$1');

可以用字符串的 split 方法。split() 方法用于把一个字符串分割成字符串数组。

var num1=str.split("(")  //["deleteChild", "236737)"]
var num2=num1[1].split(")") //["236737", ""]
var result=num[0]

我的答案也是利用高票答案的原理,不过我个人觉得我这样写可能会通俗易懂点

var str = "deleteChild(236737)";
var reg= /\((\d+)\)/;

if(reg.test(str)){ //如果匹配上直接获取括号里的内容
    console.log(RegExp.$1) //236737
}

试试这个

var str = "deleteChild(236737)";
var reg = /(?<=\()(\d+)(?=\))/;
var result = str.match(reg);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题