日期:2014-05-18  浏览次数:20592 次

前后台的单双引号的问题
后台动态加载代码
sb.Append(@ " <input   type= 'text '   name= 'matname '   id= 'matname '   value=0   onkeyup= 'value=value.replace(/[^\d]/g, ' ')   'onbeforepaste= 'clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) '   size= '3 '> ");

this.Label1.Text   =   sb.ToString();
这是该代码在前台显示出来的HTML源码
<input     onkeyup= 'value=value.replace(/[^\d]/g, ' ')   'onbeforepaste= 'clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) '   > </span>

要让它的源码显示为下面这样
[也就是方onkeyup   onbeforepaste   这两个方法不是用单引号括起来   码是用双引号括起来的   如何在后台实现]
<input     onkeyup= "value=value.replace(/[^\d]/g, ' ')   "onbeforepaste= "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\d]/g, ' ')) "/> </div>


------解决方案--------------------
" <input onkeyup=\ "value=value.replace(/[^\\d]/g, ' ') \ "onbeforepaste=\ "clipboardData.setData( 'text ',clipboardData.getData( 'text ').replace(/[^\\d]/g, ' '))\ "/> </div> "

不要+@,@是取第一个双引号到第二个双引号之间的内容并且可以在代码中换行不用加连接符,其中不会把\给算进去。没看到你里面还有 "\ "所以改一下我那个就行了,输出双引号是 "\ " "输出斜杠是 "\\ "