suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie erhalte ich den Inhalt in Klammern mithilfe regulärer Ausdrücke in JS?

var str="deleteChild(236737)";
Erhalten Sie beispielsweise die Zahl in Klammern. 236737Andere sind nicht erforderlich.
Wie schreibe ich normales JS?
js-Array ist zu problematisch. Denn die Zahl in Klammern ändert sich.

滿天的星座滿天的星座2752 Tage vor692

Antworte allen(6)Ich werde antworten

  • 某草草

    某草草2017-05-19 10:42:53

    使用 \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("字符串中没有符合条件的数字");
    }

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:42:53

    var number = "deleteChild(236737)".replace(/.*\((\d+)\)$/, '$1');

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:42:53

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

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

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:42:53

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

    var str = "deleteChild(236737)";
    var reg= /\((\d+)\)/;
    
    if(reg.test(str)){ //如果匹配上直接获取括号里的内容
        console.log(RegExp.$1) //236737
    }

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:42:53

    /\d+/g

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-19 10:42:53

    同意4楼的写法, 这样简单方便.
    系统学习正则表达式, 倾情推荐 正则表达式前端使用手册 | louis blog
    sf链接: 正则表达式前端使用手册 - 路易斯聊前端 - SegmentFault
    原文目录超级长,总结得灰常全面.

    Antwort
    0
  • StornierenAntwort