一般情况下,在拼接字符串为json格式的过程中,如果字符串含有单引号,双引号等特殊字符时,在解析json的过程中就会报错。同样,在别的格式使用的时候也会报错。

通常做法是将其替换为非特殊字符,然后再将其还原。

var word = "I'm json!"

var replacedWord = word.replace(/'/g,''');

然后再使用时又替换回来:

var preWord         =  replacedWord.replace(/'/g," ' ");

※ 或者使用escape() 和 unescape()方法

这种方法固然可以,但是在实际操作中未免繁琐。。

经过摸索,只需替换一次,也可以直接使用含有单引号双引号等特殊字符的字符串。

代码如下:

//在特殊字符前加斜杠(转义)

function addSlashes (str) {
return str.replace(/[\\"']/g, '\\$&');

正则表达式说明:

/[\\"']/g 全局搜索含有 "    ’的字符

\\$ & $&表示搜索到字符的引用,如果是'     则表示'       前加\\

这样就可以直接使用含有单引号双引号等特殊字符的字符串拼接json格式而保持原内容不发生改变。

一般情况下,在拼接字符串为json格式的过程中,如果字符串含有单引号,双引号等特殊字符时,在解析json的过程中就会报错。同样,在别的格式使用的时候也会报错。通常做法是将其替换为非特殊字符,然后再将其还原。如下:var word = "I'm json!"var replacedWord = word.replace(/'/g,''');然后再使用时又替换回来:v var str="<>";str=str.replace(/\'/g,"’");// 替换 半角 单引号 为全角 单引号 str=str.replace(/\"/g,"”");// 替换 半角双引号为全角双引号str=str.replace(/</g,"《").replace(/>/g,"》");// var a = "双引号字符串"; a= a.replace("\"","").replace("\"","");
1.双引号 替换 单引号 var _adrobj = JSON .stringify(address).replace(/\"/g,"'");ps:var a = {a:1,b:2}; JSON .stringify(a)====>"{"a":1,"b":2}" 2. 单引号 替换 成双引号 var _nstr = _adrdata.replace(/'/g, '"');ps: var json =
var str=" str=str.replace(/\'/g,"’");// 替换 半角 单引号 为全角 单引号 str=str.replace(/\"/g,"”");// 替换 半角双引号为全角双引号 str=str.replace(//g,"《").replace(/>/g,"》");//
双引号 替换 单引号 let params = {"type":"survey_1","option1":"6","option2":"Yes","option3":"6","option4":"how"} let str = JSON .stringify(params).replace(/"/g, '\'')console.log(str) {'type':'survey...
正则表达式 是一种用于匹配字符串模式的表达式。在 JavaScript ,我们可以使用 正则表达式 对象(RegExp)来创建和处理 正则表达式 。 以下是一些常用的 正则表达式 : 1. 匹配数字:/^\d+$/ 2. 匹配字母:/^[a-zA-Z]+$/ 3. 匹配邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ 4. 匹配手机号:/^1[3456789]\d{9}$/ 5. 匹配 URL:/^((https?|ftp|file):\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/ 在 JavaScript ,我们可以使用 正则表达式 对象的 test() 方法来检测一个字符串是否匹配 正则表达式 。例如: const pattern = /^\d+$/; const str = '12345'; console.log(pattern.test(str)); // true 除了 test() 方法外,RegExp 对象还有许多其他的方法,例如 exec() 方法可以返回匹配的子串以及其位置信息。
zjfuyong: 您好,请教,我这边用PHP运行oracle的存储过程,该存储过程有一个out 参数是varchar2类型,值分别是Y和N,我在PHP中如何取这个返回值? 以下是oracle的存储过程:实际代码比这个复杂 create or replace procedure update_db_fy (p_sfb01 in varchar2 ,p_rq in varchar2,p_lx in varchar2 ,p_mj in varchar2,p_ta_sfb04 in varchar2,p_result out varchar2) is sfb03_value varchar2(10); begin SELECT TA_SFB03 INTO sfb03_value FROM SFB_FILE WHERE SFB01=p_sfb01 AND TA_SFB04=p_ta_sfb04 ; if sfb03_value is null then begin p_result :='N'; p_result :='Y'; end update_db_fy; 以下是PHP代码: $sql_sp = "BEGIN update_db_fy(:p_sfb01, :p_rq, :p_lx, :p_mj, :p_ta_sfb04, :p_result); END;"; $stmt = OCI_Parse($conn, $sql_sp); OCI_Bind_By_Name($stmt, ":p_sfb01", $SFB01); OCI_Bind_By_Name($stmt, ":p_rq", $RQ); OCI_Bind_By_Name($stmt, ":p_lx", $LX); OCI_Bind_By_Name($stmt, ":p_mj", $MJ); OCI_Bind_By_Name($stmt, ":p_ta_sfb04", $TA_SFB04); OCI_Bind_By_Name($stmt, ":p_result", $array3); $r_result= OCI_Execute($stmt); echo json_encode($array3); 在苹果x-code环境测试错误,返回结果ERROR PHP调用sqlserver存储过程并获取返回值 zjfuyong: 您好,请教,我这边用PHP运行oracle的存储过程,该存储过程有一个out 参数是varchar2类型,值分别是Y和N,我在PHP中如何取这个返回值? 以下是oracle的存储过程:实际代码比这个复杂 create or replace procedure update_db_fy (p_sfb01 in varchar2 ,p_rq in varchar2,p_lx in varchar2 ,p_mj in varchar2,p_ta_sfb04 in varchar2,p_result out varchar2) is sfb03_value varchar2(10); begin SELECT TA_SFB03 INTO sfb03_value FROM SFB_FILE WHERE SFB01=p_sfb01 AND TA_SFB04=p_ta_sfb04 ; if sfb03_value is null then begin p_result :='N'; p_result :='Y'; end update_db_fy; 以下是PHP代码: $sql_sp = "BEGIN update_db_fy(:p_sfb01, :p_rq, :p_lx, :p_mj, :p_ta_sfb04, :p_result); END;"; $stmt = OCI_Parse($conn, $sql_sp); OCI_Bind_By_Name($stmt, ":p_sfb01", $SFB01); OCI_Bind_By_Name($stmt, ":p_rq", $RQ); OCI_Bind_By_Name($stmt, ":p_lx", $LX); OCI_Bind_By_Name($stmt, ":p_mj", $MJ); OCI_Bind_By_Name($stmt, ":p_ta_sfb04", $TA_SFB04); OCI_Bind_By_Name($stmt, ":p_result", $array3); $r_result= OCI_Execute($stmt); echo json_encode($array3); 现在在苹果x-code环境测试错误,返回结果ERROR