【问题标题】:jQuery evaluate last word onlyjQuery 只计算最后一个单词
【发布时间】:2012-02-14 13:50:43
【问题描述】:

如何让 jJvascript/jQuery 评估输入的最后一个单词?

示例 (doe ra fa la si do) 仅评估 do

非常类似于 Google 的搜索框。我只想在一个空格之后进行评估,并使用 Ajax 调用搜索该单词。

这是我尝试过的代码:

$(document).ready(function() {

    ajaxcall();
    var x = setInterval(ajaxcall, 1000);

    function ajaxcall() {
        var nameid = $('#word').val();
        if (nameid.match(/^\s*$/)) {
            // nothing, or nothing but whitespace
        } else {
            $.get('mysqlquery.php?id=' + nameid, function(data) {
                $('#loadbox').append(data + ' ');
            });
        }
    }
});​

【问题讨论】:

  • 我认为this answer 会帮助你
  • 感谢您的快速响应,但我需要 javascript/jquery 字符串可以变得非常非常长

标签: php jquery ajax autocomplete


【解决方案1】:
 $(document).ready(function(){

    ajaxcall();
    var x = setInterval(ajaxcall,1000);

function ajaxcall(){
    var nameid = $('#word').val().split(' ');
    nameid = nameid[nameid.length-1];
        if (nameid.match(/^\s*$/)) {
        // nothing, or nothing but whitespace
    } else {
        $.get('mysqlquery.php?id='+nameid, function(data){
        $('#loadbox').append(data+' ');     
              });
        }
  }
});

【讨论】:

  • .split(' ')方法分割字符串,这会返回一个字符串数组,这个数组的最后一个成员就是你所需要的。
  • 使用 .pop() 方法怎么样?这不是让你得到数组的最后一个元素吗?
  • 是的,nameid=nameid.pop(); 也可以。
【解决方案2】:

尝试使用.split()将字符串转换为数组,然后使用.pop()返回数组中的最后一个元素:

function lastWord(subject)
{
    var ar = subject.split(" ");
    return ar.pop();
}

lastWord("some amazing sentence"); // sentence

【讨论】:

    【解决方案3】:

    这应该返回字符串的最后一个单词:

    var str = 'doe ra fa la si do',
        patt = /[^\s]*$/;
    alert(str.match(patt)); // Returns `do`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2015-10-08
      • 1970-01-01
      • 2023-03-11
      • 2012-01-04
      • 2014-10-16
      相关资源
      最近更新 更多