JavaScript有文字string?
在C#和ruby和许多其他语言,你可以表示一个string,因为不需要转义。
在C#中是这样的
string s = @"\whatever\this\is";
结果是打印时
\whatever\this\is
我的问题是,这是支持在JavaScript中的任何forms?
简短的回答:不
长答案:不,唔唔唔唔唔唔唔唔唔唔
我不知道你在做什么,但是解决转义问题的一种方法是使用John Resig似乎非常喜欢的一个技巧。 你在页面中包含<script>
块,但是给它们一个像“text / plain”这样的“types”来确保浏览器不把它们交给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
$('#a_string').text()
抓住它。
编辑:这里是John Resig关于为什么把东西放入脚本块的解释是个好主意:
快速提示:在页面中embedded具有未知内容types的脚本(这里就是这种情况 – 浏览器不知道如何执行text / html脚本)被浏览器忽略 – search引擎和屏幕阅读器。 这是一个偷偷摸摸进入你的页面的完美隐藏设备。 我喜欢使用这种技术来处理快速和肮脏的情况,我只需要一个或两个页面上的小模板,并希望轻快的东西。
采取从这页: http : //ejohn.org/blog/javascript-micro-templating/
只是逃避逃生
var myCrazyString = "\\yes\\we\\have\\no\\bananas"
通过使用ES6语言function可以使用文字string。 节点v4.x现在支持这些以及大约90%的其他ES6添加。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings
在JSstring文字被称为模板string。 语法非常简单。
我知道现在已经六年了,但我已经有了一个解决scheme;)
function literalString(regex) { return ('' + regex).slice(1, -1); }; O.innerHTML = literalString(/\whatever\this\is/);
<pre id=O>
只要你不把\x
放到string中,这个就行了!
var str = String.raw`\whatever\this\is`; console.log(str);