选择符号旁边的单词

Select word next to symbol

本文关键字:单词 符号 选择      更新时间:2023-09-26

我在按键 35 上有 jquery 代码,即 # 到下拉div。我需要获取#旁边的单词,例如

<textarea></textarea> 我输入 #Michael 我想在var name中存储 #Michael发出 ajax 请求以检查数据库中是否存在 Michael 以及是否存在,请在下拉div中回显它。在我单击列表中的一些内容并将其替换为名称并在名称之前替换#之后,就像我得到结果一样:

迈克尔帕克 并单击这个以将这个替换为名称值。

我需要选择输入#的单词

[Q] 如何选择#旁边的单词?

试试这个:

function getName(){
  var t = document.getElementsByTagName('textarea')[0].value;
  var name = t.split(' ');
  name.forEach(function(str){
    if(str[0] === '#') {
     return str;
    }
  });
}

我用它来进行测试

<textarea>asjdaksdjans #hacj asdasd</textarea>
<button onclick="getName()">find</button>

我希望这就是你想要的。

编辑

function getName(){
  var t = document.getElementsByTagName('textarea')[0].value;
  if(t[t.length-1]=== ' '){
    var name = t.split(' ');
    name.forEach(function(str){
       if(str[0] === '#') {
       console.log(str);
       }
    });
  }
}

对于测试:

<textarea onkeyup="getName()">asjdaksdjans #hacj asdasd</textarea>

编辑

jQuery(function($){
 $('textarea').on('keyup', function(event){
   var text = $(this).val();
   if(text[text.length-1]=== ' ') {
     var name = text.split(' ');
     $.each(name, function(i, str) {
       console.log(i, str);
       if(str[0] === "#") {
         alert('name is:' +str);
       }
     });
   }
 });
});
这是

工作示例。请注意,您不能从事件处理程序中"获取值"。但是,您可以从该处理程序调用操作。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var capName = '';
            var capStart = false;
            $('#txt').keypress(function (e) {
                if (e.key == '#') {
                    capStart = true;
                    capName = '';
                }
                if (capStart && /[a-z0-9_#-]/i.test(e.key)) {
                    capName += e.key;
                }
                if (capStart && !/[a-z0-9_#-]/i.test(e.key)) {
                    capStart = false;
                    doSomething(capName);
                }
            });
            function doSomething(text) {
                $('#result').html(capName);
            }
        });
    </script>
</head>
<body>
    <textarea id="txt"></textarea><br />
    <div id="result"></div>
</body>
</html>