Javascript RegExp查找并替换空方括号

时间:2011-10-09 16:38:29

标签: javascript regex replace

我有一个包含name="text_field_1[]"之类的字符串,我需要查找并替换'1[]'部分,以便我可以像'2[]''3[]'等一样增加

代码:

$search = new RegExp('1[]', 'g');
$replace = $number + '[]';
$html = $html.replace($search, $replace)

4 个答案:

答案 0 :(得分:1)

您可以在正则表达式中使用\d,这意味着只有[]之前使用的数字。 你还需要转义[],因为它是regexp中的特殊字符。

$search = new RegExp('\\d+\\[\\]', 'g');
$replace = $number + '[]';
$html = $html.replace($search, $replace)

代码:http://jsfiddle.net/VJYkc/1/

答案 1 :(得分:1)

您可以使用回调。

var $counter = 0;

$html = $html.replace(/1\[\]/g, function(){
    ++$counter;
    return $counter+'[]';
});

如果您需要[]前面有任何数字,可以使用\d

var $counter = 0;
$html = $html.replace(/\d\[\]/g, function(){
    ++$counter;
    return $counter+'[]';
});

注意:

  • 转义括号,因为它们在正则表达式中很特殊。
  • 请确保在$html中只有您需要替换的模式,否则它将替换所有1[]

答案 2 :(得分:0)

大括号必须在regexp中转义......

var yourString="text-field_1[]";
var match=yourString.match(/(\d+)\[\]/);
yourString=yourString.replace(match[0], parseInt(match[1]++)+"[]");

答案 3 :(得分:0)

这里有趣。您可以将函数传递给string.replace

  var re = /(\d+)(\[\])/g/;
  html = html.replace(re, function(fullMatch, value, braces) {
    return (parseInt(value, 10)+1) + braces;
  }

现在您可以替换字符串中的多个#[]实例。