提问者:小点点

在Javascript中获取括号之间的字符串的正则表达式


我试图写一个正则表达式,返回括号之间的字符串。例如:我想得到位于字符串(和)之间的字符串

I expect five hundred dollars ($500).

会返回

$500

在Javascript中找到正则表达式以获取两个字符串之间的字符串

但我是新来的正则表达式。我不知道如何在regexp中使用“(”,“)”


共3个答案

匿名用户

您需要创建一组转义(带\)括号(与括号匹配)和一组常规括号,用于创建捕获组:

var regExp = /\(([^)]+)\)/;
var matches = regExp.exec("I expect five hundred dollars ($500).");

//matches[1] contains the value between the parentheses
console.log(matches[1]);

匿名用户

尝试字符串操作:

var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var newTxt = txt.split('(');
for (var i = 1; i < newTxt.length; i++) {
    console.log(newTxt[i].split(')')[0]);
}

或正则表达式(与上面的相比有点慢)

var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var regExp = /\(([^)]+)\)/g;
var matches = txt.match(regExp);
for (var i = 0; i < matches.length; i++) {
    var str = matches[i];
    console.log(str.substring(1, str.length - 1));
}

匿名用户

简单解

注意:这个解决方案可以用于只有单个"("和")"的字符串,比如这个问题中的字符串。

("I expect five hundred dollars ($500).").match(/\((.*)\)/).pop();

在线演示(JSFIDLE)