愚蠢的问题,但我不知道如何在正则表达式中找到(2000)
并将其替换为[2000]
答案 0 :(得分:12)
你可以这样做:
str.replace(/\((\d+)\)/g, "[$1]");
使用正则表达式:\((\d+)\)
(
和)
是正则表达式中的特殊字符
用于分组,以匹配文字
(
)
,你需要逃避它们
\(
\)
\d
是数字的缩写。 \d+
表示一个或多个数字。(
)
将分组并记住
数。记得的号码会
以后用于替换。g
进行全球替换。意思
每次出现的模板
字符串将被替换。$1
是(
之间的数字
)
已被分组并记住。/
/
是正则表达式分隔符。答案 1 :(得分:1)
function _foo(str) {
return str.replace(/[(](\d*)[)]/, '[$1]');
}
alert( _foo("(2000)") ); // -> '[2000]'
alert( _foo("(30)") ); // -> '[30]'
alert( _foo("(abc)") ); // -> '(abc)'
alert( _foo("()") ); // -> '[]'
答案 2 :(得分:0)
像这样:yourString.replace(/\(2000\)/, "[2000]");
答案 3 :(得分:0)
试试这个:
function foo(S) {
return S.replace(/\(([^\)]+)\)/g,"[$1]");
}