3

我想检查我的用户名是否包含空格,所以它会发出警报,所以我这样做它可以工作,但我面临的一个问题是,如果我在开始时给空间,那么它不会发出警报。我搜索它但找不到解决方案,我的代码是这个

var username    =   $.trim($('#r_uname').val());
var space = " ";
  var check = function(string){
   for(i = 0; i < space.length;i++){
     if(string.indexOf(space[i]) > -1){
         return true
      }
   }
   return false;
  }

  if(check(username) == true)
  {
     alert('Username contains illegal characters or Space!');
     return false;
  }
4

3 回答 3

8

只需使用.indexOf()

var check = function(string) {
    return string.indexOf(' ') === -1;
};

您还可以使用正则表达式将用户名限制为特定格式:

var check = function(string) {
    return /^[a-z0-9_]+$/i.test(string)
};
于 2013-04-07T04:24:11.387 回答
3

您应该使用正则表达式来检查空格字符\s

if (username.match(/\s/g)){
    alert('There is a space!');
}

请参阅此jsFiddle中的实际代码。

于 2013-04-07T04:24:59.657 回答
1

为什么你不使用这样的东西?

if(string.indexOf(space) > -1){
     return true
  }
于 2013-04-07T04:32:49.630 回答