以空格分隔的字符串获取最后一个单词的最快方式

时间:2009-10-15 11:10:24

标签: jquery string autocomplete

我正在使用jquery来获取字符串中的最后一个单词, 但我想确定这是最好的方式(表现明智), 因为字符串可能会很长

此外,我想添加获取“当前”字词的功能, 这可能不仅仅是最后一个字。

这是我目前的代码

 <script type="text/javascript">
  function lookup()
  {
    var s = $('#text').val().split( " " ).pop();
    if(!s.length)
      return false;

    $('#output').html('"'+s+'"');
  }
  </script>

  <div id="main">
       <textarea id="text" rows="5" cols="50" onkeyup="lookup(this.value);">
       </textarea>
       <div id="output"></div>
  </div>

关于如何让它处理的不仅仅是“最后”单词的任何提示,即,如果我将光标移回几个单词到另一个单词,我是否还能以某种方式获得当前位置&amp;得到那个词?

1 个答案:

答案 0 :(得分:0)

尽管可能不是绝对最快的解决方案,但这比创建数组和弹出元素要快。

我总是倾向于使用PHP的 strrpos 函数来执行此类操作(尤其是文件扩展名),所以这很自然(来自php.js

// find position of last occurrence of string within variable
function strrpos (haystack, needle, offset) {
    var i = (haystack+'').lastIndexOf(needle, offset); // returns -1
    return i >= 0 ? i : false;
}

function lookup(val) {
    var pos = strrpos(val, ' ');
    if (pos == false)
        return false;

    // get substring of value from 0 to the last
    // occurrence of empty string
    val = val.substring(0, pos + 1);

    $('#output').html(val);
}