Javascript字符串不';t compare,使用jQuery.val()func时未转义转义字符

Javascript字符串不';t compare,使用jQuery.val()func时未转义转义字符,javascript,jquery,string,comparison,Javascript,Jquery,String,Comparison,我有: var inputText=$(“#tzbox_txt”).val(); var stringText=“Raphaël\nkicks\nbutt!” inputText===stringText-错误! 如果我使用$(input).val()我会得到“Raphaël\nkicks\nbutt!”,其中\n不会被解释为换行符。 如果我做了var text=“Raphaël\nkicks\nbutt!”它将被转义,文本显示为换行符 如何使用换行符解释输入文本值?一个input[type

我有:


var inputText=$(“#tzbox_txt”).val();
var stringText=“Raphaël\nkicks\nbutt!”
inputText===stringText-错误!
如果我使用
$(input).val()
我会得到
“Raphaël\nkicks\nbutt!”
,其中
\n
不会被解释为换行符。 如果我做了
var text=“Raphaël\nkicks\nbutt!”
它将被转义,文本显示为换行符


如何使用换行符解释输入文本值?

一个
input[type=text]
元素不能包含换行符,因为
text
输入只接受一行文本。您认为的换行转义序列被解释为纯文本

如果要匹配它,请将匹配代码更改为此,因为这正是从
val()
函数返回的内容:

<input type="text" value="Raphaël\nkicks\nbutt!" id="tzbox_txt">

var inputText = $("#tzbox_txt").val(); 
var stringText = "Raphaël\nkicks\nbutt!"
inputText === stringText - false!
如果要以另一种方式进行匹配,并且
输入
元素包含
'\n'
的文本序列,则可以在测试之前替换文本值:

var stringText = "Raphaël\\nkicks\\nbutt!";

如果需要多行文本输入,则应使用文本区域而不是输入文本框。文本框只是一行文本,因此没有换行符

编辑:如果要将序列\n视为换行符,请执行搜索和替换:

var inputText = $("#tzbox_txt").val().replace(/\\n/g,"\n");
var stringText = "Raphaël\nkicks\nbutt!";
inputText === stringText; // true

字符串中有一个反斜杠,后跟一个n。此搜索和替换将文本“\n”替换为换行符。

我认为这里的基本问题是,在输入文本框中\n被解释为反斜杠和字母n,而在var语句中\n被转换为实际的换行符。

我确实需要多行文本,但它需要从文本框中进行解释。我的问题是,是否有一种方法可以解释文本框值中带有换行符的文本?@mercury22:你可以进行简单的搜索并替换(根据编辑后的答案)。谢谢Cletus,我对你的答案投了更高的票,但Doug之前使用了搜索和替换这将匹配,但我的问题是,是否有一种方法可以通过换行符来解释文本框值中的文本?@mercury22我更新了我的答案,以另一种方式解决问题,但请注意,无论你做什么,这都是一种解决方法或黑客攻击<代码>输入元素不能包含本机意义上的多行文本。
var s = "this\\nis\\na\\ntest";
var unescaped = s.replace("\\n", "\n");