关于正则表达式一问 急

flashyears 2005-02-05 11:08:10
我的一个网友提出的问题。


用JavaScript做一个UBB解码引擎
我做的时候总有一句话说“正则表达式不正确”
出错语句:
thetag = "B"
eval("\[" + thetag + "\]");
上句会报错
如果复杂一点写:
var re = new RegExp();
re.ignoreCase = true;
re.global = true
thetag = "B"
re.compile("\[" + thetag + "\]");
上句会报错



请各位大侠帮忙。
...全文
95 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flashyears 2005-02-05
  • 打赏
  • 举报
回复
var re = new RegExp();
re.ignoreCase = true;
re.global = true
thetag = "B"
re.compile("\[" + thetag + "\]");


对于这段代码应该怎么处理?
meizz 2005-02-05
  • 打赏
  • 举报
回复
你替换的是 [b] 还是字符 b ??若是[b]则用我那个, 若是字符, 那中括号都用不着:
<SCRIPT LANGUAGE="JavaScript">
<!--
var thetag = "B";
var re = new RegExp(thetag, "gi");
var str = "123b45B6";
str = str.replace(re, "<B>");
alert(str);
//-->
</SCRIPT>
flashyears 2005-02-05
  • 打赏
  • 举报
回复
reg = "/\\[" + thetag + "\\]/g"


用这个的话,结果没有替换成功


而且var re = new RegExp("\[" + thetag + "\]", "g");好使
smalle 2005-02-05
  • 打赏
  • 举报
回复
thetag = "B"
eval("\[" + thetag + "\]");

运行时变成
thetag = "B"
[B]

==============================
明显语法不正确,当然不行
reg = "/\\[" + thetag + "\\]/g"
eval(reg);
flashyears 2005-02-05
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
var thetag = "B";
var re = new RegExp("\[" + thetag + "\]", "g");
var str = "12b345B6";
str = str.replace(re, "XXXXX");
alert(str);
//-->
</SCRIPT>

也好使呀。


meizz 2005-02-05
  • 打赏
  • 举报
回复
在 editor 里没反应不要紧, JS脚本最终写好是在浏览器里运行的,...
<SCRIPT LANGUAGE="JavaScript">
<!--
var thetag = "B";
var re = new RegExp("\\[("+ thetag +")\\]", "gi");
var str = "123[b]45[B]6";
str = str.replace(re, "<$1>");
alert(str);
//-->
</SCRIPT>
flashyears 2005-02-05
  • 打赏
  • 举报
回复
在Antechinus JavaScript Editor里面 ("\[" + thetag + "\]") 运行的时候没有问题。
换上了"\\["+ thetag +"\\]" 就没结果了。。。。
meizz 2005-02-05
  • 打赏
  • 举报
回复
var thetag = "B";
var re = new RegExp("\\["+ thetag +"\\]", "gi");

//在字符串里 \ 是需要转义的
flashyears 2005-02-05
  • 打赏
  • 举报
回复
没人回?
flashyears 2005-02-05
  • 打赏
  • 举报
回复
自己顶一下。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧