Javascript 使用正则表达式替换

发布于 2024-09-02 20:12:25 字数 711 浏览 4 评论 0原文

<input type="text" value="[tabelas][something][oas]" id="allInput">
<script type="text/javascript">  

allInput = document.getElementById('allInput');

var nivel = new Array('tabelas', 'produto');
for (var i =0; i < nivel.length ; i++ )
{
 alert(" oi => " + allInput.value + " <-- " + nivel[i]) ;
 var re = new RegExp("^\[" + nivel[i] + "\]\[.+\].+", "g");
alert(re);
 allInput.value = allInput.value.replace(
      re, "OLA");
 alert(" oi 2 => " + allInput.value + " <-- " + nivel[i]) ;
}
</script> 

基本上我想用一定数量替换 [tabelas][something][otherfield] 中的“something2”,我一直在使用 regexp,并使用 .replace(/expression/,xxx ) 和 new RegExp(致以

诚挚的问候并感谢您的帮助。

<input type="text" value="[tabelas][something][oas]" id="allInput">
<script type="text/javascript">  

allInput = document.getElementById('allInput');

var nivel = new Array('tabelas', 'produto');
for (var i =0; i < nivel.length ; i++ )
{
 alert(" oi => " + allInput.value + " <-- " + nivel[i]) ;
 var re = new RegExp("^\[" + nivel[i] + "\]\[.+\].+", "g");
alert(re);
 allInput.value = allInput.value.replace(
      re, "OLA");
 alert(" oi 2 => " + allInput.value + " <-- " + nivel[i]) ;
}
</script> 

Basically I whant to replace "something2 in the [tabelas][something][otherfield] by a number of quantity, I have been playing with regexp and had different results from this using .replace(/expression/,xxx ) and new RegExp() .

Best regards and thank you for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

本王不退位尔等都是臣 2024-09-09 20:12:25
  1. 您需要进行双重转义,以便正则表达式构造函数能够看到转义,而不是 Javascript 解析器。"\[" 将生成字符串 [, " \\[" 将产生 \[
  2. 请记住,正则表达式 \[.+\][abc][def] 等字符串匹配。您可能需要 \[\w+\] 或类似的东西。
  1. You need to double-escape so the escape is seen by the regexp constructor, not the Javascript parser."\[" will result in the string [, "\\[" will result in \[.
  2. Keep in mind that the regexp \[.+\] matches strings like [abc][def]. You probably want \[\w+\] or something similar.
陌伤浅笑 2024-09-09 20:12:25

如果您使用 new RegExp(...) 语法构造 RegExp,则需要两个 反斜杠来转义字符。

new RegExp("^\\[" + nivel[i] + "\\]\\[.+\\].+", "g");

If you construct a RegExp from the new RegExp(...) syntax, then you need two backslashes to escape a character.

new RegExp("^\\[" + nivel[i] + "\\]\\[.+\\].+", "g");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文