簡體   English   中英

在javascript中使用input.value.match進行驗證

[英]validating using input.value.match in javascript

我相信我有一個相當簡單的問題,但不幸的是我無法解決。 我搜索了一段時間,並嘗試了該代碼的幾種不同變體,但似乎無法使其正常工作。

我要做的只是檢查並查看我的輸入值中是否有與數字相反的字母字符。

這是我的js函數:

function checkLetters(input) {
    var numOnly = /^[0-9]+$/;
    var hasLetters = false;
    if (!input.value.match(numOnly)) {
        hasLetters = true;
    } 
    return hasLetters;
}

這是調用它的代碼:

<input type="text" name="cc_number" size="13" maxlength="11" onblur="
    if(checkLength(cc_number.value) == true) {
    alert('Sorry, that is not a valid number - Credit Card numbers must be nine digits!');
    } else if (checkLetters(cc_number.value) == true) {
    alert('Credit Card number must be numbers only, please re-enter the CC number using numbers only.');
    }">

任何幫助或建議,將不勝感激。

您正在傳遞cc_number.value作為input ,但隨后引用了input.value.match() ,其結果是:

cc_number.value.value.match();

只需傳遞cc_number

if (checkLetters(cc_number)) {
  ...
}

您似乎正在嘗試驗證信用卡輸入。 我可以建議其他方法嗎?

function checkCardInput(input,errorId) {
  var errorNoticeArea = document.getElementById(errorId);   
  errorNoticeArea.innerHTML = ''; 
  if(!input.value) {
    errorNoticeArea.innerHTML = 'This field cannot be left blank.';   
    return;
  }
  if(!input.value.match(/[0-9]/)) {
    errorNoticeArea.innerHTML = 'You may only enter numbers in this field.';
    input.value = '';
    return; 
  }
  if(input.value.length != 9) {
    errorNoticeArea.innerHTML = 'Credit card numbers must be exactly 9 digits long.';   
    return;
  }
}

有關示例用法,請參見此jsFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM