[来者有分]第二次发贴,求一个正则表达式的详解。欢迎来讨论

llddyy123wq 2010-07-20 05:32:17
先说说我的问题吧,我用了一个ewebeditor控件,而且是很多个,要为某个对象动态赋值,所以涉及到一些id的定义方式,,所以需要用到eval函数来处理。然后呢就遇到了一个问题,那就是下面代码中取到的val的值中会用到一些带有样式的字符串,字符串如下所示。
"答案:<P style="LINE-HEIGHT: 150%; MARGIN-LEFT: 17.95pt" class=MsoNormal></P>"
意思就是里面也有一些双引号,会导致这个eval函数调用时会出错。我现在就是想处理一下这个val串,把里面的双引号换成\",下面的代码只是把双引号变成了单引号,但是我不知道怎么换成我想要的\".

var val = document.getElementById("hide_r"+n+"_c"+i+r).value;
val=val.replace(/"([^"]*)"/g, "'$1'");
eval("editor1"+n+".setHTML('"+val+"')");

问题1,请帮我解决一下上面提到的问题。
问题2,val=val.replace(/"([^"]*)"/g, "'$1'");这里面的$1代表什么意思?请朋友们详细讲解一下这第二个参数。谢谢了。
呵呵,我向来分配分配均匀,这个大家不要担心。呵呵。
各抒己见,来者欢迎。
...全文
141 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyd383102521 2010-07-21
  • 打赏
  • 举报
回复
不会正则,来学习学习
arabicsara 2010-07-21
  • 打赏
  • 举报
回复
jf~~~~~
loveheye 2010-07-21
  • 打赏
  • 举报
回复
学习学习~~ 帮顶
cjfriends 2010-07-21
  • 打赏
  • 举报
回复
我来向大家学习
mm51221 2010-07-21
  • 打赏
  • 举报
回复
帮顶!
llddyy123wq 2010-07-21
  • 打赏
  • 举报
回复
换行也解决了,val = val.replace(/"([^"]*)"/g,"\\\"$1\\\"").replace(/\s+/g,"");
虽然问题很简单,但大家积极性不怎么高哦。呵呵。
再次感谢所有来此顶贴的朋友。
顶贴是一种美德。
中午我就结贴了。想发言的朋友,仍然欢迎。
llddyy123wq 2010-07-21
  • 打赏
  • 举报
回复
第一个帮顶了给了10分。呵呵。
我的目的只是鼓励大家积极回贴。
当然最好是有点内容和见解。
OK,虽说这次没怎么得到大的响应,好歹还是有部分同志来关注的。
再次谢谢了。
zjx198934 2010-07-20
  • 打赏
  • 举报
回复
学习了 以前都是在c#中处理 没在页面遇到过这种情况!
llddyy123wq 2010-07-20
  • 打赏
  • 举报
回复
同时我发现我的问题导致的原因还有一个就是换行 导致的。现在我正处理这个问题,也欢迎大家给出自认为不错的意见。
llddyy123wq 2010-07-20
  • 打赏
  • 举报
回复
呵呵,谢谢9楼和10楼的解释。
我现在用val = val.replace(/"([^"]*)"/g,"\\\"$1\\\"");这个表达式就可以解决了。
至于9楼的方式我早试过了。貌似不行。呵呵。
仍然继续欢迎大家的指点。来多点人,多给点分。大家互相学习。

Aquarius娜吖 2010-07-20
  • 打赏
  • 举报
回复
顶个!!!
-过客- 2010-07-20
  • 打赏
  • 举报
回复
在替换结构中,$number是对第number个捕获组匹配结果的引用
需要注意的是,$0是固定存在的,表示整个表达式匹配结果

参考
正则基础之——捕获组(capture group)
jshi123 2010-07-20
  • 打赏
  • 举报
回复
javascript的replace方法只替换第一个匹配,要写成正则表达式并指定全局匹配
val = val.replace(/"/g, "\\\"");

$1表示匹配的第一个捕获组(就是用正则中括号里的东西进行替换)
http://msdn.microsoft.com/en-us/library/t0kbytzc%28v=VS.85%29.aspx
llddyy123wq 2010-07-20
  • 打赏
  • 举报
回复
不好意思,上面的是/**/ 符号由于中间有隔断,所以导致没注释完。请大家凑合着看下啊。呵呵。
llddyy123wq 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zyl_leilei 的回复:]
val=val.Replace("\"","\\\"");
[/Quote]
这个哥们,你的意思我懂,可是仍然不可以。呵呵。
我把代码调试的结果贴出来吧。

var val = document.getElementById("hide_r"+n+"_c"+i+r).value;
//这一步执行完成后的结果
/*
"答案:
<STYLE>
/* Generator: eWebEditor */
p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;font-size:10.5pt;font-family:Calibri;}
div.Section1 {page:Section1;}
</STYLE>

<P style="LINE-HEIGHT: 150%; MARGIN-LEFT: 17.95pt" class=MsoNormal><SPAN><SPAN style="COLOR: black">
<P style="LINE-HEIGHT: 150%; MARGIN-LEFT: 17.95pt" class=MsoNormal><A name=OLE_LINK4><SPAN style="FONT-FAMILY: 宋体; COLOR: black">解:答案为</SPAN><SPAN>C</SPAN></A><SPAN><SPAN style="FONT-FAMILY: 宋体">,集合</SPAN><SPAN><IMG style="VERTICAL-ALIGN: middle" src="/uploadfile/20100719214934001.gif" width=249 height=27></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">,</SPAN></P></SPAN></SPAN> 
<P></P>"
*/

//上一步执行后的结果,发现没?只替换了一个
/*
"答案:
<STYLE>
/* Generator: eWebEditor */
p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;font-size:10.5pt;font-family:Calibri;}
div.Section1 {page:Section1;}
</STYLE>

<P style=\"LINE-HEIGHT: 150%; MARGIN-LEFT: 17.95pt" class=MsoNormal><SPAN><SPAN style="COLOR: black">
<P style="LINE-HEIGHT: 150%; MARGIN-LEFT: 17.95pt" class=MsoNormal><A name=OLE_LINK4><SPAN style="FONT-FAMILY: 宋体; COLOR: black">解:答案为</SPAN><SPAN>C</SPAN></A><SPAN><SPAN style="FONT-FAMILY: 宋体">,集合</SPAN><SPAN><IMG style="VERTICAL-ALIGN: middle" src="/uploadfile/20100719214934001.gif" width=249 height=27></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">,</SPAN></P></SPAN></SPAN> 
<P></P>"
*/
llddyy123wq 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 journey_q 的回复:]
http://www.360doc.com/content/08/0401/18/3123_1157729.shtml

这个网站都是正则表达式...
[/Quote]
好的,我先看下,还是谢了,不过能帮我问答下上面的问题,我更高兴。呵呵。
  • 打赏
  • 举报
回复
给你顶起、
-小蕾- 2010-07-20
  • 打赏
  • 举报
回复
val=val.Replace("\"","\\\"");
journey_q 2010-07-20
  • 打赏
  • 举报
回复
http://www.360doc.com/content/08/0401/18/3123_1157729.shtml

这个网站都是正则表达式...
TONG_先生 2010-07-20
  • 打赏
  • 举报
回复


up!
加载更多回复(1)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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