JS 定义字符串,强制不处理转义字符

假如你想用 JS 定义一个含有路径字符串,目前在 Windows 上是用的 反斜杠 \ 作为路径分隔符,直接复制粘贴到 “ “ 内,JS 会将 \ 的部分视为转义字符,所以每次都要将 \ 替换为 \\,麻烦啊。所以,怎么才能让 JS 强制不处理转义字符呢?使用 String.raw() 即可让 “\” 在字符串当中不再起到转义特殊字符的作用。

MDN 是这样说的:String.raw() 是一个模板字符串的标签函数,它的作用类似于 Python 中的字符串前缀 r 和 C# 中的字符串前缀 @,是用来获取一个模板字符串的原始字面量值的。

语法

1
2
String.raw(callSite, ...substitutions)
String.raw`templateString`

描述

String.raw() 是唯一一个内置的模板字符串标签函数,因为它太常用了。不过它并没有什么特殊能力,你自己也可以实现一个和它功能一模一样的标签函数。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
String.raw `Hi\n!`;
// "Hi\\n!",这里得到的不是 Hi 后面跟个换行符,而是跟着 \ 和 n 两个字符

String.raw `Hi\u000A!`;
// "Hi\\u000A!",同上,这里得到的会是 \、u、0、0、0、A 6个字符,
// 任何类型的转义形式都会失效,保留原样输出,不信你试试.length

let name = "Bob";
String.raw `Hi\n${name}!`;
// "Hi\\nBob!",内插表达式还可以正常运行

String.raw({raw: "test"}, 0, 1, 2);
// "t0e1s2t",我认为你通常不需要把它当成普通函数来调用

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 41 34 (34) 未实现 未实现 未实现

参考 String.raw() - JavaScript | MDN

本站文章除注明转载外均为原创,未经允许不要转载哇. ヾ(゚ー゚ヾ) http://qwqaq.com/24a771e4.html
分享到