我试图写一个正则表达式,它返回一个字符串是括号之间。例如:我想获得位于字符串"("和")"之间的字符串
I expect five hundred dollars ($500).
将返回
$500
发现正则表达式在Javascript中获得两个字符串之间的字符串
我不知道如何在regexp中使用'(',')'。
我试图写一个正则表达式,它返回一个字符串是括号之间。例如:我想获得位于字符串"("和")"之间的字符串
I expect five hundred dollars ($500).
将返回
$500
发现正则表达式在Javascript中获得两个字符串之间的字符串
我不知道如何在regexp中使用'(',')'。
当前回答
将Mr_Green的答案移植为函数式编程风格,以避免使用临时全局变量。
var matches = string2.split('[')
.filter(function(v){ return v.indexOf(']') > -1})
.map( function(value) {
return value.split(']')[0]
})
其他回答
简单: (? <价值 >(?<=\().*(?=\)))
我希望我能帮上忙。
let str = "括号前(括号内)括号后".replace(/.*\(|\). "* / g,”); console.log(str) //括号内
尝试字符串操作:
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]);
}
或regex(与上面的相比,它有点慢)
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));
}
var str = "I expect five hundred dollars ($500) ($1).";
var rex = /\$\d+(?=\))/;
alert(rex.exec(str));
将匹配以$开头,后跟')'的第一个数字。')'将不是比赛的一部分。代码在第一个匹配时发出警报。
var str = "I expect five hundred dollars ($500) ($1).";
var rex = /\$\d+(?=\))/g;
var matches = str.match(rex);
for (var i = 0; i < matches.length; i++)
{
alert(matches[i]);
}
这段代码在所有匹配时发出警报。
引用:
搜索“?”= n” http://www.w3schools.com/jsref/jsref_obj_regexp.asp
搜索“x(?=y)” https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp
简单的解决方案
注意:这个解决方案可以用于这个问题中只有一个“(”和“)”的字符串。
("I expect five hundred dollars ($500).").match(/\((.*)\)/).pop();
在线演示(jsfiddle)