gpt4 book ai didi

javascript - 如何允许用户在 Javascript 中输入转义字符

转载 作者:行者123 更新时间:2023-11-28 05:57:18 25 4
gpt4 key购买 nike

这里是一个简单的。

我有一个 HTML <textarea>我想在其中允许用户输入转义序列。即:

Hello\nworld\x21

我希望我的脚本能够“解释”\n\x21得到:

Hello
world!

谢谢

编辑:这样做的目的是允许用户在 html 页面中输入热敏打印机的代码。打印机需要特殊字符。我想获取该字符串,“解释”特殊代码并将其发送到打印机。目前,打印机按原样打印字符串。

最佳答案

我能想到的不使用 替换行的唯一方法是使用 eval()函数。例如,您可以使用以下内容:

function useEscapes(s) {
return eval('("' + s.replace(/([^\\]|^)(?=(\\\\)*["\n])/g, '$1\\').replace(/\n/g, 'n') + '")');
}

replace 是为了确保传入 eval() 函数是安全的。

编辑 2016 年 9 月 28 日:

有一种更好的方法,不会带来安全风险。由于字符串文字是有效的 JSON,因此您可以将其括在引号中并使用 JSON.parse。您还可以转义其中的引号,这样用户就不会遇到无法解释的语法错误。如果攻击者试图将代码放在字符串之外,它只会抛出语法错误。

function useEscapes(s) {
return JSON.parse('"' + s
.replace(/((^|[^\\])(\\\\)*)"/g, '$1\\\\"') // optional - prevents syntax errors
+ '"');
}

关于javascript - 如何允许用户在 Javascript 中输入转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com