2009-10-15 44 views
1

我正在使用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> 

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

+0

我想知道如何让所有的字,但最后一个。 – anmarti 2012-11-02 11:58:21

回答

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); 
} 
相关问题