我在我的一个网络应用中添加了一个新字段,供访问者添加产品.推送"添加产品"克隆其中一个现有输入,并将其设置为空白值.
但是我需要更新名称.名称采用以下格式:
<input type="text" name="product[0][0][3][title]" value="my product" id="input-AbGHtQS3" maxlength="150" />
Run Code Online (Sandbox Code Playgroud)
我需要递增最后一个数字索引,即本例中的3.
我写了一个正则表达式来匹配相应的字符,但是如何增加最后一个数字呢?
这是我的正则表达式:
/^product\[\d+\]\[\d+\]\[(\d+)\]\[.+\]/
Run Code Online (Sandbox Code Playgroud)
我怎么能增加最后一个数字?
And*_*igh 10
from:使用RegExp匹配括号,然后递增它
replace方法可以将函数作为其第二个参数.它获取匹配(包括子匹配)并返回替换字符串.其他人已经提到括号需要转义.
"Item Name (4)".replace(/\((\d+)\)/, function(fullMatch, n) {
return "(" + (Number(n) + 1) + ")";
});
Run Code Online (Sandbox Code Playgroud)
所以,
*编辑:
这应该工作
"product[0][0][3][title]".replace(/(^product\[\d+\]\[\d+\]\[)(\d+)(\]\[.+\])/, function(fullMatch, n, a, o) {
return n + (Number(a) + 1) + o;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7002 次 |
| 最近记录: |