js实现addslashes
实现 addslashes 函数
addslashes 函数用于在字符串中的特殊字符前添加反斜杠,通常用于转义字符串中的引号、反斜杠等字符,以便安全地存储或传输数据。以下是几种实现方法:
使用正则表达式替换
function addslashes(str) {
return str.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
这个方法会匹配字符串中的反斜杠、双引号和单引号,并在它们前面添加反斜杠。同时,它还会处理空字符(\u0000)。
逐个字符检查并转义
function addslashes(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === '\\' || char === '"' || char === "'" || char === '\0') {
result += '\\' + char;
} else {
result += char;
}
}
return result;
}
这个方法遍历字符串中的每个字符,遇到需要转义的字符时,在前面添加反斜杠。
使用对象映射需要转义的字符
function addslashes(str) {
const escapeChars = {
'\\': '\\\\',
'"': '\\"',
"'": "\\'",
'\0': '\\0'
};
return str.replace(/[\\"'\0]/g, match => escapeChars[match]);
}
这个方法使用对象来映射需要转义的字符及其转义后的形式,代码更清晰且易于维护。

注意事项
- 这些实现会转义反斜杠、单引号、双引号和空字符。
- 如果需要转义其他字符,可以修改正则表达式或对象映射。
- 在 PHP 中,addslashes 还会转义 NUL 字符(\0),因此上述实现也包含了这一点。






