js中正则式的子匹配模式

danwell7 2013-03-27 04:13:37
escape : function(string) {
return string.replace(/('|\\)/g, "\\$1");
}
var s=String.escape("天生一个'仙人\洞,无限风光'在险\峰.");
alert(s);
下面是结果

这儿的首次匹配是\替换掉在string中出现的‘或\
子匹配$1中还是一样,为什么 天生一个'仙人\洞,无限风光'在险\峰.中的\最终没有了???
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oxfed 2013-03-28
  • 打赏
  • 举报
回复
试试这个吧兄弟,alert("\洞"); 你就会发现你在鸡蛋中找骨头
似梦飞花 2013-03-27
  • 打赏
  • 举报
回复
你的字符串"天生一个'仙人\洞,无限风光'在险\峰."中其实是没有'\'的 他是对洞和峰进行转义了 依然为洞和峰 你改成这样试试 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"> String.prototype.change=function(){ var reg=/('|\\)/g; return this.replace(reg,'\\$1'); } function ss(a){ a=a.change(); alert(a); } </script> </head> <body> <input type="text" value="天生一个'仙人\洞,无限风光'在险\峰." onblur="ss(this.value)"> </body> </html>
functionsub 2013-03-27
  • 打赏
  • 举报
回复
"天生一个'仙人\洞,无限风光'在险\峰." 这句话里的\的意思已经是转移字符的意思了。

87,910

社区成员

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

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