我在 JavaScript 中有以下正则表达式。我试图仅匹配字符串中方括号内的第一个数字,因为我必须替换它。 这是我的代码。
var str = 'dgt_gallery_item[3][type]';
var res = str.match(/^\w+\[(\d+)\]/g);
var rep = str.replace(/^\w+\[(\d+)\]/g, 5 + 1);
这个想法是从 1 个或多个字母数字字符开始匹配,然后 [,然后开始捕获 1 个或多个数字,然后]。
我查看了regex 101我的代码看起来是正确的,但是当我在浏览器中测试它时,它也匹配第一个单词。我怎样才能跳过它?
最佳答案
您可以使用此正则表达式:
var rep = str.replace(/(?!\[)\d/, (5+1));
<小时/>
解释:
(?!\[) # the number must be preceded by one '[' character
# without taking it
\d # takes a one digit number ..
# you can use '\d+' to multiple digits number
关于javascript - 仅匹配 JavaScript 正则表达式中方括号中的数字,而不匹配前一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438766/