选择符号旁边的单词

时间:2016-04-23 18:21:01

标签: javascript jquery

我在keypress 35上有jquery代码,它是#downdown div。我需要得到站在#like。

旁边的词

<textarea></textarea>我键入#Michael我想将#Michael存储在var name中 在发出ajax请求以检查Michael是否存在于数据库中之后,如果确实存在,请在下拉列表div内回显它。在点击列表中的某些内容后,将其替换为名称和#之前的名称,如果我得到结果:

迈克尔帕克,点击这个,用名称值替换这个。

我需要选择用#

输入的单词

[问] 如何选择站在#旁边的单词?

2 个答案:

答案 0 :(得分:1)

试试这个:

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);
       }
     });
   }
 });
});

答案 1 :(得分:0)

这是一个有效的例子。请注意,您不能从事件处理程序'getvalue'。但是你可以从那个处理程序调用动作。

<!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>