繁体   English   中英

我如何确保该字段不只填充空白空间?

[英]how do i make sure the field is not filled in with empty spaces only?

我的代码:

  var myNameFilter = /^([a-zA-Z ]+)$/;
  var a = $('#afirstname').val();

  if(a=='') {
    console.log('WT?');  
    return false;
  } else if (!myNameFilter.test(a)) {
      console.log('WT? seriously?'); 
      return false;
  }  
  submit_form();

如果有人只将a = ' '的值放在一些空白处,则此过滤不起作用。

如何使用myNameFilter进行过滤?

像这样使用trim()

var a = '       ';
a.trim() // => ''

所以你可以做

  var myNameFilter = /^([a-zA-Z ]+)$/;
  var a = $('#afirstname').val();

  if(!a.trim()) {
    console.log('WT?');  
    return false;
  } else if (!myNameFilter.test(a)) {
      console.log('WT? seriously?'); 
      return false;
  }  
  submit_form();

注意, if ,当修剪后的字符串为空时,条件!a.trim()计算结果为true,因为空字符串是虚假值

您可以使用修剪功能修剪空白。

var a = $('#afirstname').val().trim();

带有空格的名称(如Jan de Derdelinks将保留。 但是,如果他们输入" Jan de Derdelinks " ,它将变成"Jan de Derdelinks"

我认为使用trim并测试长度是最简单的解决方案

if (a.trim().length) {
  //a has content

} else {
  //a has no content

}
var myNameFilter = /^[a-z|A-Z]+(\s[a-z|A-Z]+){0,}$/,
            name = $('#afirstname').val();

if (myNameFilter.test(name)) {
    submit_form();
}

解决这个问题的另一种方法是采用字符串并将其放入函数中。 可以说x是您的字符串。 我们将找到长度,然后在其中找到“”的数量。 如果它们匹配,则字符串全为空白。

`function testForBlank(x) {
    var spaces=x.match(/ /gi).length;
    var length=x.length;
    if (spaces==length) {
        alert("x is all blank");
    } else {
        alert("x is not all blank");
    }
}' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM