2011-04-08 41 views
3

我有一個jQuery插件,用於查找textarea的插入符號位置。我實現它的textarea的KEYUP功能,像這樣:textarea中插入字符之前查找word的一部分

$("#editor").keyup(function() { 
    var textbox = $(this); 
    var end = textbox.getSelection().end; 
}); 

我想找到一個詞的話,或者一部分,符前面。單詞由任何類型的空格分隔。

我這樣做的主要困難是處理換行符。在插入符號的字符索引之前,我怎樣才能找到單詞或單詞的一部分?

回答

8

如果您爲此使用my jQuery textarea plug-in,則無論瀏覽器如何處理換行符,選擇字符位置總是相對於textarea的value屬性。然後你可以得到最後一個詞,如下所示:

請注意,您必須使用textarea的value屬性,而不是jQuery的val()方法,該方法規範化換行符。

$("#editor").keyup(function() { 
    var textbox = $(this); 
    var end = textbox.getSelection().end; 
    var result = /\S+$/.exec(this.value.slice(0, end)); 
    var lastWord = result ? result[0] : null; 
    alert(lastWord); 
}); 
+0

Damnit,我開始看着這個,但分心,你已經解決了! +1,因爲它完全符合我的做法。雖然有一個小錯誤,'$ textArea [0]'需要用'$('textarea')[0]'或'this'來代替。 – andyb 2011-04-08 11:53:23

+0

@andyb:啊,是的,你是對的(複製和粘貼的危險)。現在修好,謝謝。 – 2011-04-08 13:32:04

+0

謝謝,它的作品! – 2011-04-08 13:46:49

相關問題