JavaScript 中的转义字符串

发布于 2024-07-17 14:59:10 字数 292 浏览 10 评论 0原文

JavaScript 是否有像 PHP 的 addslashes (或 addcslashes)函数那样的内置函数,可以为字符串中需要转义的字符添加反斜杠?

例如,这个:

这是一个演示字符串 “单引号”和“双引号”。

...会成为:

这是一个演示字符串 \'单引号\' 和 \“双引号”。

Does JavaScript have a built-in function like PHP's addslashes (or addcslashes) function to add backslashes to characters that need escaping in a string?

For example, this:

This is a demo string with
'single-quotes' and "double-quotes".

...would become:

This is a demo string with
\'single-quotes\' and
\"double-quotes\".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

明媚殇 2024-07-24 14:59:10

您也可以尝试使用双引号:

JSON.stringify(sDemoString).slice(1, -1);
JSON.stringify('my string with "quotes"').slice(1, -1);

You can also try this for the double quotes:

JSON.stringify(sDemoString).slice(1, -1);
JSON.stringify('my string with "quotes"').slice(1, -1);
迷离° 2024-07-24 14:59:10

http://locutus.io/php/strings/addslashes/

function addslashes( str ) {
    return (str + '').replace(/[\\"']/g, '\\
amp;').replace(/\u0000/g, '\\0');
}

http://locutus.io/php/strings/addslashes/

function addslashes( str ) {
    return (str + '').replace(/[\\"']/g, '\\
amp;').replace(/\u0000/g, '\\0');
}
如梦 2024-07-24 14:59:10

Paolo Bergantino 提供的函数的变体,可直接作用于字符串:

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\
amp;').replace(/\u0000/g, '\\0');
} 

通过将上面的代码添加到您的库中,您将能够执行以下

var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());

编辑: 遵循

操作 注释,任何担心 JavaScript 库之间冲突的人都可以添加以下代码:

if(!String.prototype.addSlashes)
{
   String.prototype.addSlashes = function()... 
}
else
   alert("Warning: String.addSlashes has already been declared elsewhere.");

A variation of the function provided by Paolo Bergantino that works directly on String:

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\
amp;').replace(/\u0000/g, '\\0');
} 

By adding the code above in your library you will be able to do:

var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());

EDIT:

Following suggestions in the comments, whoever is concerned about conflicts amongst JavaScript libraries can add the following code:

if(!String.prototype.addSlashes)
{
   String.prototype.addSlashes = function()... 
}
else
   alert("Warning: String.addSlashes has already been declared elsewhere.");
小梨窩很甜 2024-07-24 14:59:10

使用encodeURI()

https://developer.mozilla.org /en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI

转义字符串中几乎所有有问题的字符,以便在 Web 应用程序中使用正确的 JSON 编码和传输。 这不是一个完美的验证解决方案,但它抓住了容易实现的目标。

Use encodeURI()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI

Escapes pretty much all problematic characters in strings for proper JSON encoding and transit for use in web applications. It's not a perfect validation solution but it catches the low-hanging fruit.

森林很绿却致人迷途 2024-07-24 14:59:10

您也可以使用这个

let str = "hello single ' double \" and slash \\ yippie";

let escapeStr = escape(str);
document.write("<b>str : </b>"+str);
document.write("<br/><b>escapeStr : </b>"+escapeStr);
document.write("<br/><b>unEscapeStr : </b> "+unescape(escapeStr));

You can also use this

let str = "hello single ' double \" and slash \\ yippie";

let escapeStr = escape(str);
document.write("<b>str : </b>"+str);
document.write("<br/><b>escapeStr : </b>"+escapeStr);
document.write("<br/><b>unEscapeStr : </b> "+unescape(escapeStr));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文