JavaScript - 如何使用转义字符构建字符串
JavaScript - how to build string with escape character?
我正在编写要使用Windows Script Host
运行的JScript
。
假设我有一个简单的字符串变量:
s1 = ''n'
我想用两个单独的字符构建s2
:'
& n
。天真我想做:
s2 = '';
s2 += '''';
s2 += 'n';
但这当然会导致s1 != s2
我可以以与s1
具有相同解释含义的方式构建s2
吗?
例:
WScript.Echo("1'n2")
var s;
s += '1';
s += '''';
s += 'n';
s += '2';
WScript.Echo(s)
我希望两个WScript.Echo()
打印完全相同的东西。
注意
我很清楚这个问题似乎完全是愚蠢的。如果我在不知道所有细节的情况下阅读它,我可能会这样想。我不希望任何人理解目的.只是好奇看看这是否可行,或者我需要重新考虑整个事情。
不能通过追加直接构建它,但可以获取包含转义序列的字符串,并将其解析为包含转义字符的字符串。在这种情况下,您可能会使用 JSON.parse
:
var s1 = ''n',
s2 = '' + '''' + 'n'; // '''n'
console.log(s1 == JSON.parse('"' + s2 + '"')) // true
你不能,这是不可能的。您不能将两个或多个字符连接在一起以生成一个字符,这就是'n
。它是一个包含单个字符的字符串。
我仍然不清楚你到底想完成什么。 但是,如果你说你有一些像var s1 = ''n'r't';
这样的任意字符串,并且你想从中生成文字字符串"'n'r't"
,以便在解析文字值时得到一个等效于原始字符串的结果,也许你可以尝试这样的事情:
window.specialChars = {
8: "''b", //backspace
9: "''t", //tab
10: "''n", //newline
12: "''f", //form-feed
13: "''r", //carriage return
39: "'''", //single-quote
92: "''''" //literal backslash
};
function escapedString(source) {
if (! source) {
return undefined;
}
var result = "";
for (var index = 0; index < source.length; index++) {
var code = source.charCodeAt(index);
result += specialChars[code] ? specialChars[code] : String.fromCharCode(code);
}
return result;
};
http://jsfiddle.net/L4L16xwu/3/
当然,您可能会在这里遇到许多问题。 特别是如果你的源字符串可能包含非ASCII字符或虚假转义序列(例如,var s1 = ''q';
是有效的JavaScript,并将s1
中存储"q"
值,并且在处理时无法判断原始源字符串中是否有虚假'
)。
除了解决您尝试使用这种"取消解析字符串"方法解决的任何潜在问题之外,可能还有更好的选择。
我今天实际上需要这样做。特别是,我需要它来构建形式的八进制和十六进制转义序列 'x39
或 '123
.
我正在使用的方法只是使用eval
:
var str = eval('"''x' + '3' + '9' +'"') // str === "9"
这是一个合理的通用解决方案。对于八进制和十六进制代码,最好将字符串解析为 int,然后从中构建一个字符串
var str = String.fromCharCode(parseInt('39', 16))
- jquery从2个json字符串构建一个复选框表单
- 在构建字典时,作为关键字的变量会自动变为字符串
- regex来构建字符串,直到遇到第N个匹配项
- 如何将动态构建的字符串作为http头在http.call中与流星一起传递
- 使用video-js构建一个包含字符串的HTML视频
- 使用 javascript 中的表单元素构建一个 xml 字符串
- 在数组中使用注释字符构建复杂字符串
- JS/jQuery遍历HTML元素以动态构建字符串
- 使用 javascript/jQuery 构建 JSON 字符串
- 如何基于下拉选择构建 URL 查询字符串
- jQuery从HTML字符串构建不正确的DOM
- 从 Javascript 中的复杂嵌套对象值构建字符串
- JavaScript - 如何使用转义字符构建字符串
- 使用单引号在 JavaScript 中构建字符串
- 敲除.js如何从绑定构建字符串
- 使用javascript构建字符串
- 使用Javascript document.write构建字符串
- 如何使用项目符号格式构建字符串
- 如何通过构建字符串动态访问变量
- 在nodejs中从sqlite3数据库构建字符串