Замените значение в скобках, используя RegEx только там, где не совпадает - PullRequest
1 голос
/ 11 августа 2009

Как заменить число в скобках для любых строк, не соответствующих слову «Поле». Таким образом, число внутри «SomethingElse» и «SomethingMore» можно заменить на новое значение, но любое значение в скобках справа от термина «Поле» не будет затронуто. Обратите внимание, что слово «Поле» всегда будет оставаться неизменным, поэтому на него можно ссылаться как на магическую строку в регулярном выражении.

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

Спасибо. PS. Использование JavaScript.

Ответы [ 4 ]

2 голосов
/ 11 августа 2009
str.replace(/\b((?!Field\[)\w+)\[\d+\]/g, '$1[' + repl + ']');
1 голос
/ 11 августа 2009

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

Надеюсь, это поможет

1 голос
/ 11 августа 2009

Попробуйте

str.replace(/(Field\[[^\]]*\]\.[^\[]*)\[(.*)\]/g, "$1["+value+"]");
0 голосов
/ 11 августа 2009

Вы можете использовать «eval» и манипулирование строками, но если вам нужно сделать это таким образом, вы делаете это неправильно.

Сохранение числа «30» в переменной позволяет манипулировать ею по мере необходимости, а затем просто получить доступ к «SomethingElse» и «SomethingMore» следующим образом:

var n = 30;
// conditional logic;

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

С уважением, Joshua

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...