2010-09-03 49 views

回答

2

像这样:

if (/^\s|\s$/.test(str)) { 
    //Waah waah waah! 
} 

说明:

  • /.../表达式创建一个RegExp对象。
  • .test()方法检查给定的字符串是否匹配正则表达式。

  • 在正则表达式的|表达式匹配无论是之前或一切之后它(一个or表达式)
  • \s表达式匹配任何单个空白字符(例如,一个空格,制表符或换行符或花式的Unicode空间)
  • ^字符匹配字符串的开头
  • $字符字符串

因此,正则表达式读取的末端相匹配:匹配字符串随后空格或空白后跟字符串的结尾的任一的开始。

+0

完美。可能是我现在开始玩更多的正则表达式。 谢谢:) – jtanmay 2010-09-03 15:54:09

0

哪里password是你candidiate的字符串值:

if(password.match(/^\s|\s$/)) 
{ 
    // failed 
} 

在正则表达式:

  • ^表示 “行首”
  • \ S表示 “空白字符”
  • |手段或
  • $的意思是“行结束”
+2

*正则表达式。当查找来自正则表达式的真或假响应时,test(str)*比* string.match(reg)*更合适。见SLaks的答案。 – 2010-09-03 15:09:11

+0

呃,从语义上讲,它仍然很清楚,表现明智,它是有效的。 'match'比'test'具有更广泛的应用,我倾向于在可能的情况下减少使用的模式。 – annakata 2010-09-06 07:43:13

1

可以很容易地编写一个正则表达式来测试是否有空格之前或之后文本;使用^和$来锚定测试。

/^\s|\s$/ 

但为什么甚至会打扰用户呢?我认为自动修剪空白会更好。

str.replace(/^\s+|\s+$/g, ''); 

没有琐事,没有大惊小怪。

+0

OP正在谈论密码输入 - 这不是您想要改变其价值的事情,这可能会让用户感到困惑。 – 2010-09-03 15:10:58

+1

怎么这样?如果使用得当,密码的值应该永远不重要,而不是它的散列值。因此,如果您在任何地方进行相同的转换,用户不需要知道它们。 – Timothy 2010-09-03 21:52:54

+0

是的,我同意你的看法,但在我的情况下,我不得不使用web服务来检查用户凭证,不幸的是web服务正在修剪所有发送给它的数据!所以我需要提醒用户。是的,我会在稍后修改版本。 – jtanmay 2010-09-05 10:25:37

相关问题