oracle数据库插入带有单引号的数据以及JS的调试方法

来源:互联网 发布:投影机中控写码软件 编辑:程序博客网 时间:2024/06/06 11:03

上上个项目中的bug,用户要插入带有英文单引号的短信内容,当时的做法是给予提示,不让插入,今天要改成允许插入。

以前的代码:


 if (MsgContent.value.indexOf("'") > -1) {
               alert("短信内容不能包含单引号");
              return false;
          }

如要改成允许插入,需要把单引号进行转义。插入时,把单引号替换成两个单引号。即把  '  变为  '' 

 


1、在C#中很好转换。

 

string content=MsgContent.replace("'","''"); 

 

content即为转换好的字符串,C#中的replace会把字符串中的所有单引号全部转换为两个单引号。

本以为大功告成,要在外网的服务器上替换DLL,同事说最好不要替换dll,用JS实现,然后替换页面,这样避免了替换DLL带来的未知的错误。(以前替换dll的时候页面出现乱码什么的)so......用JS实现替换。

 

2、JS实现替换


 var content;
if (MsgContent_tea.value.indexOf("'") > -1) {
   content  = MsgContent_tea.value.replace( "'","''");
 }
 else
  {
    content=MsgContent_tea.value;
  }

 
测试,问题出现,此replace只能替换一次,不能全部替换!!

解决方案,在被替换的字符后面加   /g  ,当然,前面被替换的字符也要稍微变一下,不能是引号了,其实就是变成正则表达式。正确的替换代码:
 var content;
if (MsgContent_tea.value.indexOf("'") > -1) {
  content  = MsgContent_tea.value.replace( /'/g,"''");
 }
 else
 {
 content=MsgContent_tea.value;
 }


 PS:JS是可以使用+=的,很多跟C#的语法一样。


 
二、JS的调试方法 在修改上面BUG的过程中,需要对写的JS进行调试,因为当时写的JS只能替换一次,所以自己写for循环进行替换了。- -!

不过傻人有傻福,学到了好东西。对于JS的调试,实训的时候剑哥教我们用IE自带的开发工具进行调试,可惜这个系统用的是框架结构,调不出来,显示的只是外层框架的JS。

解决方案:首先得有 Firebug插件。在火狐浏览器中找插件能找到。然后在JS的方法后加  debugger 

 例: 

 function insert() {
debugger
 var content;
if (MsgContent_tea.value.indexOf("'") > -1) {
  content  = MsgContent_tea.value.replace( /'/g,"''");
 }
 else
 {
 content=MsgContent_tea.value;
 }
}

运行页面,启动插件。脚本应该默认启动的吧。如果运行的时候JS直接过去了,没停在debugger处,那可以先关闭脚本调试,然后再开启。这样就OK了。


三、object对象是JS最基本的对象,声明与使用:var={    }

JS的两种写法:


1、function add(e){ ...  }


2、add:function(e) {...}  


window.location.reload();重新加载

原创粉丝点击