我想要一个文本输入,用户可以输入特殊字符,例如 \ n 。 但是当我尝试在输入中获取值时,我得到了转义字符串。我需要消除价值或任何变通方法吗?
编辑:我举了一个例子http://jsfiddle.net/9hmHr/
答案 0 :(得分:1)
你是说这个吗?
<textarea id="x">hello\ndolly</textarea>
<button onclick="alert(document.getElementById('x').value.replace(/\\n/g,'\n'))">Click</button>
var str = 'aaasddd';
alert(
str.replace('s',
$('#my').val().replace(/\\n/g,'\n')
)
);
答案 1 :(得分:0)
我找了一个有趣的方法,在搜索了一个更全面的解决方案之后做了这个,没有涉及用它的字面形式替换每个字符。
var x = "\\thello\\n\\tworld",
y = JSON.parse(
JSON.stringify(x).replace(/\\\\/g,'\\')
);
console.log("Original:");
console.log(x);
console.log("Literal:");
console.log(y);
以上输出:
Original:
\thello\n\tworld
Literal:
hello
world
我希望这有帮助!
注意:这可能不适用于可能包含大括号({
或}
)的字符串,因为它可能会尝试将其转换为对象字面值。您可以通过“填充”大括号的转义字符来避免这种情况。 (例如,将"\{"
更改为"\\\{"
)