我有一个文本区域,您可以在其中输入消息。输入“@”后,消息应以空格分隔。将所有单词放入数组后,我想在数组中搜索如下单词:@person1
,@person2
。
但是第一部分已经出了问题。
我用下面的代码尝试了它,但数组似乎总是空的。
$("textarea.autocomplete-pt").keypress(function(e) {
if (e.which == 64) {
var string = $(".autocomplete-pt").text(),
array = string.split(/ +/);
console.log(array);
}
});
我做错了什么?
这是jsfiddle
最佳答案
要读取 input
和 textarea
的内容,您必须使用 val()
而不是 text()
。有关更多详细信息,请参阅 jQuery 文档,但您的代码应如下所示:
$("textarea.autocomplete-pt").keypress(function(e) {
if (e.which == 64) {
var string = $(".autocomplete-pt").val().trim();
var array = string.split(/\s+/);
console.log(array);
}
});
正如 Tushar 在评论中建议的那样,最好使用 \s+
而不是 来匹配空格,因为它还可以处理多个空格和其他类型的空格 (制表符、短空格和长空格等,如果用户要粘贴从其他页面复制的文本或者在日语中具有双/单宽度字符,则该功能特别有用)。
关于javascript - 按空格分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330324/