javascript-如何安全地将JS字符串变量包装在双引号字符中?
作者:互联网
显然,当您自己创建实际的字符串文字时,您自己反斜杠转义了双引号字符.
var foo = "baz\"bat";
就像处理少数其他控制字符一样,例如换行符和反斜杠.
var bar = "baz\\bat\nmynew line and a \"quote\" ";
但是,如果您只是将现有变量包装在引号中,即要将其提供给其他需要使用引号输入的系统,则会有些混乱.
显然,您必须转义字符串中所有可能的双引号字符.
var doubleQuoteRe = /\"/g;
var quoted = "\"" + unquoted.replace(escaper, '\\\"') + "\"";
但是根据某些人的说法,您现在还必须担心在变量中转义文字反斜杠字符.换句话说,使用的锤子比我的小正则表达式大得多.但是我不明白为什么.
解决方法:
您可能要避免转义已经转义的引号-
String.prototype.inquotes=function(){
return '"'+this.replace(/(^|[^\\])"/g,'$1\\"')+'"';
}
标签:double-quotes,javascript,regex 来源: https://codeday.me/bug/20191210/2100055.html