在c#和ruby以及许多其他语言中,您可以表示不需要转义的字符串 在c#中就像这样
string s = @"\whatever\this\is";
打印时的结果
\whatever\this\is
我的问题是,是否支持javascript中的任何形式?
答案 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脚本)被浏览器忽略 - 并通过搜索引擎和屏幕阅读器。这是一个完美的隐形设备,可以将模板隐藏到您的页面中。我喜欢将这种技术用于快速和肮脏的情况,我只需要在页面上使用一两个模板,并且想要一些轻快的东西。
答案 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
扔进字符串,这就行了!
var str = String.raw`\whatever\this\is`;
console.log(str);
&#13;