2010-04-15 44 views
1

我有一个用户输入框中的字符串值。我必须弄清楚最后一个字符是否是输入键(换行符)。如何比较字符串在最后使用jquery/javascript有一个输入键?

那就是代码。我在这里检查最后一个字符是否有空格。现在我还必须检查最后一个字符是否是回车键(回车或换行)。我怎样才能做到这一点?

var txt = $get("<%= txtUserText.ClientID %>"); 
if (txt.value.substring(txt.value.length -1) !== ' ' || <checkifLastCharIsEnterKey>) 
    //my code to take action 

****我不认为我需要一个按键或keyup事件,因为这上面这段代码是不是在用户输入时调用。**

回答

2

您可以使用正则表达式:

if(/\s$/.test(txt.value)) 

这将检查的最后一个字符是任何空白字符(包括标签,换行符)。

编辑

要分别检查换行符:

if(/\r|\n$/.test(txt.value)) { 
    //Newline 
} else if(/\s$/.test(txt.value)) { 
    //Any other whitespace character 
} 
+0

实际上,我需要检查空白和换行符分开。 如果空白为真这样做 如果换行符是true这样做 – Jango 2010-04-15 13:53:19

+0

然后您可以检查最后一个字符是否等于''\ r''或''\ n''。你可以使用'charAt'方法。 – SLaks 2010-04-15 13:59:38

+0

它在浏览器FF和IE8中工作(在兼容性视图模式下)。但在IE8浏览器中有一个概率...打入enter..code它陷阱它...你打空白代码它得到它......但如果你按Enter键并给出空白以及..... newline条件是真的(这很好)...但它不会回来......我的意思是现在,无论你在输入框中输入什么字符......这个换行符条件仍然是真的:(它只发生在IE8中。 ANy clue? – Jango 2010-04-15 14:28:13

2

那么你可以使用正则表达式:

if (/[\r\n]$/.test(txt)) { /* it has a newline at the end */ } 

如果你想摆脱它:

txt = txt.replace(/[\r\n]$/, ''); 

如果你想摆脱所有“空白”的字符串的结尾:

txt = txt.replace(/\s*$/, ''); 
+0

对不起的人...它没有为我用方括号工作... – Jango 2010-04-15 14:22:29

相关问题