如何在Javascript中为字符串添加斜杠?

时间:2010-02-03 21:24:32

标签: javascript jquery formatting string-formatting backslash

只是一个字符串。每次有单引号时添加\'。

8 个答案:

答案 0 :(得分:59)

replace适用于第一个引用,因此您需要一个小小的正则表达式:

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

答案 1 :(得分:28)

以下JavaScript函数句柄',',\ b,\ t,\ 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, '\\"');
}

答案 2 :(得分:19)

使用JSON.stringify可以全面紧凑地转义字符串。它是ECMAScript 5的JavaScript的一部分,并受主要较新浏览器版本的支持。

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

使用这种方法,也可以在相对紧凑的语句中正确转义特殊字符作为空字节,unicode字符和换行符\r\n

答案 3 :(得分:4)

可以肯定的是,您不仅需要替换单引号,还需要替换已经转义过的引号:

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

答案 4 :(得分:4)

如果您正在进行替换以准备将字符串发送到alert() - 或者其他任何单引号字符可能会让您失望的话,那么您没有要求的答案可能会有所帮助。

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

这将用十六进制代码替换所有单引号以获得单引号。

答案 5 :(得分:3)

var myNewString = myOldString.replace(/'/g, "\\'");

答案 6 :(得分:2)

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: \'

答案 7 :(得分:2)

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');
        }
}

用法:alert(str.addSlashes());

参考:https://stackoverflow.com/a/9756789/3584667