只是一个字符串。添加\”到它每次有一个单引号。

有帮助吗?

解决方案

replace适用于第一次报价,所以你需要一个很小的正则表达式:

str = str.replace(/'/g, "\\'");

其他提示

下面的JavaScript功能句柄”,”,\ B,\吨,\ N,\ F或\ r等效PHP函数和addslashes的()。

function addslashes(string) {
    return string.replace(/\\/g, '\\\\').
        replace(/\u0008/g, '\\b').
        replace(/\t/g, '\\t').
        replace(/\n/g, '\\n').
        replace(/\f/g, '\\f').
        replace(/\r/g, '\\r').
        replace(/'/g, '\\\'').
        replace(/"/g, '\\"');
}

的字符串可以被全面逃脱和紧凑地透过JSON.stringify。它是JavaScript的的一部分,如的ECMAScript 5 的和主要较新的浏览器版本支持。

str = JSON.stringify(String(str));
str = str.substring(1, str.length-1);

使用这种方法,还特殊字符作为空字节,Unicode字符和换行符\r\n中正确相对紧凑声明逃脱了。

要确定,你不仅需要更换单引号,但也已经逃脱的:

"first ' and \' second".replace(/'|\\'/g, "\\'")

你没有问一个答案可能会有所帮助,如果你正在做准备更换为发送串入警报() - 或任何其他地方一个单引号字符可能会发觉你的

str.replace("'",'\x27')

这将与十六进制代码替换所有单引号为单引号。

var myNewString = myOldString.replace(/'/g, "\\'");
var str = "This is a single quote: ' and so is this: '";
console.log(str);

var replaced = str.replace(/'/g, "\\'");
console.log(replaced);

使你:

This is a single quote: ' and so is this: '
This is a single quote: \' and so is this: \'
if (!String.prototype.hasOwnProperty('addSlashes')) {
    String.prototype.addSlashes = function() {
        return this.replace(/&/g, '&') /* This MUST be the 1st replacement. */
             .replace(/'/g, ''') /* The 4 other predefined entities, required. */
             .replace(/"/g, '"')
             .replace(/\\/g, '\\\\')
             .replace(/</g, '&lt;')
             .replace(/>/g, '&gt;').replace(/\u0000/g, '\\0');
        }
}

用法:警报(str.addSlashes());

REF: https://stackoverflow.com/a/9756789/3584667

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top