你可以在不使用'或'引号的情况下创建JavaScript字符串吗?

Jef*_*eff 7 javascript string

我有一个带有一些XML的JS文件,其中XML应该由服务器转换为单词.

例如

var ip = "<lang:cond><lang:when test="$(VAR{'ip_addr'})">$(VAR{'ip_addr'})</lang:when></lang:cond>";
Run Code Online (Sandbox Code Playgroud)

这将转换为:

var ip = "192.168.0.0";
Run Code Online (Sandbox Code Playgroud)

但是,如果服务器无法按预期工作,我不希望出现语法错误,这非常重要.目前会出现语法错误,因为该语言使用两种类型的引号.我想不出办法解决这个问题,但也许还有另一种方法可以在JavaScript中做引用?或者创建一个字符串?

例如,在Python中我会使用三引号:

ip = """<lang:cond><lang:when test="$(VAR{'ip_addr'})">$(VAR{'ip_addr'})</lang:when></lang:cond>"""
Run Code Online (Sandbox Code Playgroud)

任何人都有一个好主意?

Jos*_*osh 22

我不得不为项目创建没有引号的字符串.我们正在向浏览器提供可执行的客户端javascript以用于内部网站.接收端在显示时会删除双引号和单引号.我发现绕过引号的一种方法是将我的字符串声明为正则表达式.

var x = String(/This contains no quotes/);
x = x.substring(1, x.length-1);
x;
Run Code Online (Sandbox Code Playgroud)

  • `/这不包含引号/.source` (2认同)

www*_*139 6

我正在寻找相同问题的解决方案。有人建议查看https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/template_strings,这证明很有帮助。在阅读了大约一半的文章后,它说您可以使用向后的刻度字符创建字符串。(`)

尝试这个 :)

document.getElementById('test').innerHTML = `'|'|'|"|"`
Run Code Online (Sandbox Code Playgroud)
<div id="test" style="font-size:3em;"></div>
Run Code Online (Sandbox Code Playgroud)


zie*_*mer 5

In JavaScript, you can escape either type of quote with a \.

例如:

var str = "This is a string with \"embedded\" quotes.";
var str2 = 'This is a string with \'embedded\' quotes.';
Run Code Online (Sandbox Code Playgroud)

特别是,您的 JavaScript 代码块应转换为:

var ip = "<lang:cond><lang:when test=\"$(VAR{'ip_addr'})\">$(VAR{'ip_addr'})</lang:when></lang:cond>";
Run Code Online (Sandbox Code Playgroud)

一般来说,我总是喜欢对引号进行转义,而不是不断地切换引号类型,这取决于其中可能使用的引号类型。


PiT*_*ber 5

使用String原型:

String(/This contains no quotes/).substring(1).slice(0,-1)
Run Code Online (Sandbox Code Playgroud)

使用String.fromCharCode

String.fromCharCode(72,69,76,76,79)
Run Code Online (Sandbox Code Playgroud)

为此生成字符代码:

var s = "This contains no quotes";
var result = [];
for (i=0; i<s.length; i++)
{
    result.push(s.charCodeAt(i));
}
result
Run Code Online (Sandbox Code Playgroud)