javascript - 按空格分割字符串

标签 javascript jquery ajax

我有一个文本区域,您可以在其中输入消息。输入“@”后,消息应以空格分隔。将所有单词放入数组后,我想在数组中搜索如下单词:@person1@person2

但是第一部分已经出了问题。

我用下面的代码尝试了它,但数组似乎总是空的。

$("textarea.autocomplete-pt").keypress(function(e) {
    if (e.which == 64) {
        var string = $(".autocomplete-pt").text(),
            array = string.split(/ +/);
        console.log(array);
    }
});

我做错了什么?

这是jsfiddle

最佳答案

要读取 inputtextarea 的内容,您必须使用 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/

相关文章:

javascript - 在 vue 组件上测试导航保护 'beforeRouteLeave'

javascript - Paypal 结帐。我无法使用 paypal 帐户访问权限登录

javascript - 提交表单跨度消息更改位置为什么?

javascript - .NET 中的 AJAX POST

javascript - 无法从 Facebook 检索事件对象?

javascript - ReactJS:为什么我的 div 没有出现?

javascript - 基于ie浏览器版本的网站重定向

javascript - 具有较少混合的 JQuery .addClass()

javascript - jQuery调整iframe高度

javascript - 如何阻止 jQuery 加载已存在的 div