我有:
<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!
如果我使用$(input).val()
,我会"Raphaël\nkicks\nbutt!"
将\n
解释为换行符。
如果我var text = "Raphaël\nkicks\nbutt!"
它正在被转义并且文本显示换行符。
如何使用换行符来解释输入文本值?
答案 0 :(得分:2)
如果您想要多行文字输入,您应该使用textareas而不是输入文本框。文本框只有一行文字,因此没有换行符。
修改:如果您想将序列视为新行,请执行搜索和替换:
var s = "this\\nis\\na\\ntest";
var unescaped = s.replace("\\n", "\n");
字符串中包含的是反斜杠文字,后跟n。此搜索和替换使用换行符替换文字“\ n”。
答案 1 :(得分:1)
input[type=text]
元素不能包含换行符,因为text
输入只接受一行文本。您认为换行转义序列被解释为纯文本。
如果您想匹配它,请将匹配代码更改为此,因为这正是从val()
函数返回的内容:
var stringText = "Raphaël\\nkicks\\nbutt!";
如果您希望以相反的方式匹配它,并且input
元素包含'\n'
的文本序列,您可以在测试前对文本值进行替换:
var inputText = $("#tzbox_txt").val().replace(/\\n/g,"\n");
var stringText = "Raphaël\nkicks\nbutt!";
inputText === stringText; // true
答案 2 :(得分:0)
我认为这里的基本问题是,在输入文本框中,\ n被解释为反斜杠和字母n,而在var语句中,\ n正被转换为实际的换行符。