我有一个textarea,您可以在其中键入消息。键入' @'后,应在空格上拆分消息。将所有单词放入数组后,我想在数组中搜索这样的单词:@person1
,@person2
。
但第一部分已经出错了。
我尝试使用以下代码,但数组似乎总是空的。
$("textarea.autocomplete-pt").keypress(function(e) {
if (e.which == 64) {
var string = $(".autocomplete-pt").text(),
array = string.split(/ +/);
console.log(array);
}
});
我做错了什么?
以下是jsfiddle
答案 0 :(得分:3)
要阅读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+
代替 来匹配空格,因为它还处理多个空格和其他类型的空格(选项卡,短空格和长空格等,如果用户粘贴从其他页面复制的文本或者它们具有日文的双/单宽度字符,则它特别有用。