javascript是否有文字字符串?

时间:2010-03-31 14:24:42

标签: javascript c# string string-literals

在c#和ruby以及许多其他语言中,您可以表示不需要转义的字符串 在c#中就像这样

string s = @"\whatever\this\is";

打印时的结果

\whatever\this\is

我的问题是,是否支持javascript中的任何形式?

6 个答案:

答案 0 :(得分:132)

简答:否

答案很长:Noooooooooooooooooooooooooo

答案 1 :(得分:21)

我不知道你得到了什么,但解决逃避(等)问题的一种方法是使用John Resig似乎喜欢的技巧。您在页面中包含<script>块,但为它们提供“类型”,如“text / plain”,以确保浏览器不会将它们移交给Javascript。然后使用脚本块的文本,无论你喜欢什么。

<script id='a_string' type='text/plain'>
  Here is some stuff.
  There might be some \escape sequences in it.
</script>

然后你可以使用$('#a_string').text()(如果你没有使用jQuery或getElementById那么抓住它。)

编辑:这是John Resig关于为什么将这些东西放入这样的脚本块中的解释是个好主意:

  

快速提示:在您的页面中嵌入具有未知内容类型的脚本(例如,这种情况就是这种情况 - 浏览器不知道如何执行text / html脚本)被浏览器忽略 - 并通过搜索引擎和屏幕阅读器。这是一个完美的隐形设备,可以将模板隐藏到您的页面中。我喜欢将这种技术用于快速和肮脏的情况,我只需要在页面上使用一两个模板,并且想要一些轻快的东西。

摘自此页:http://ejohn.org/blog/javascript-micro-templating/

答案 2 :(得分:2)

逃脱逃脱

var myCrazyString = "\\yes\\we\\have\\no\\bananas"

答案 3 :(得分:2)

通过使用ES6语言功能可以获得文字字符串。 Node v4.x现在支持这些以及大约90%的其他ES6添加。

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

在JS字符串文字中称为模板字符串。语法很简单。

答案 4 :(得分:1)

我知道现在已经晚了六年,但我有一个解决方案;)

function literalString(regex) {
    return ('' + regex).slice(1, -1);
};

O.innerHTML = literalString(/\whatever\this\is/);
<pre id=O>

您基本上将正则表达式转换为字符串并删除第一个和最后一个字符。

答案 5 :(得分:1)

只要你不将\x扔进字符串,这就行了!

&#13;
&#13;
var str = String.raw`\whatever\this\is`;

console.log(str);
&#13;
&#13;
&#13;