仅在不匹配的情况下使用RegEx替换括号内的值

时间:2009-08-11 09:43:46

标签: javascript jquery regex

如何替换括号内的数字,以替换不匹配单词“Field”的字符串。因此,'SomethingElse'和'SomethingMore'中的数字可以替换为新值,但是不会触及术语'Field'右侧的任何括号内的值。请注意,单词“Field”将始终保持不变,因此可以在正则表达式中将其引用为魔术字符串。

Field[50].SomethingElse[30]
Field[50].SomethingMore[30]

感谢。 PS。使用JavaScript。

4 个答案:

答案 0 :(得分:2)

str.replace(/\b((?!Field\[)\w+)\[\d+\]/g, '$1[' + repl + ']');

答案 1 :(得分:1)

尝试

str.replace(/(Field\[[^\]]*\]\.[^\[]*)\[(.*)\]/g, "$1["+value+"]");

答案 2 :(得分:1)

str.replace(/(?<!Field)\[([\d]*)\]]/g, '$1['+newnumber+']');

希望这有帮助

答案 3 :(得分:0)

你可以使用“eval”和字符串操作,但是如果你必须这样做,那你就错了。

将数字“30”存储到变量允许根据需要进行操作,然后只需访问“SomethingElse”和“SomethingMore”,如下所示:

var n = 30;
// conditional logic;

Field[50].SomethingElse[n]
Field[50].SomethingMore[n]

此致 约书亚