我正在尝试在换行符上拆分一个字符串,这似乎适用于我在javascript中声明的字符串,但它在我从html文本框中检索的字符串上失败。我们的想法是,在将某些内容粘贴到文本框中时,应触发此字符串拆分事件。
我不知道为什么这只是硬编码字符串。请看一下JSFiddle
<input type="text" name="test">
$(document).ready(function() {
$('input').bind('paste', null, function(e){
$this = $(this);
setTimeout(function(){
var columns = $this.val().split(/\r?\n/);
console.log(typeof $this.val());
console.log(columns);
var newstring = "a\nb\r\nc";
console.log(newstring.split(/\r?\n/));
},0);
});
});
答案 0 :(得分:3)
<input type="text">
始终是单行的,因此您输入的任何文字都会删除任何换行符。换句话说,问题不在于您的脚本,而在于文本来源的格式。
如果您需要多行文字框,请改用<textarea></textarea>
答案 1 :(得分:1)
input
字段是单行的,这意味着任何换行符都会被删除(或以其他方式处理)。您应该使用textarea
元素。
$(document).ready(function() {
$('textarea').bind('paste', null, function(e) {
$this = $(this);
setTimeout(function() {
var columns = $this.val().split(/\r?\n/);
console.log(typeof $this.val());
console.log(columns);
var newstring = "a\nb\r\nc";
console.log(newstring.split(/\r?\n/));
}, 0);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="test"></textarea>
&#13;