簡體   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