Javascript - 正则表达式匹配数字长5位数

时间:2018-02-28 14:20:58

标签: javascript regex

我有一个已经连接到我的HTML模板的JS文件。我有一个输入表单,我希望它只接受数字0-9,具有5个数字的确切字符数。 所以我放置了函数:

function validate (input) {
  if($(input).attr('type') == 'text' || $(input).attr('name') == 'text') {
  if($(input).val().trim().match(/^[0-9].{5}/) == null) {
    return false;
  }
 }

现在输入无法继续输入数字,尝试过的字母,数字,小于11个字符且超过5但仍然会返回错误。

当我使用这个时,它只接受数字,不接受少于5个字符,但它可以接受超过5个我不想要的。

function validate (input) {
  if($(input).attr('type') == 'text' || $(input).attr('name') == 'text') {
  if($(input).val().trim().match(/^[0-9]{5}/) == null) {
    return false;
  }
 }

请帮助我编辑此匹配match(/^[0-9]{5}/)以使其成为:

  • 仅接受数字
  • 仅接受和确切的字符数(仅限5个字符)

2 个答案:

答案 0 :(得分:1)

您可以使用/^[/\d]{5}?$/仅匹配数字,确切的位数为5。

function validate (input) {
  return input.match(/^[/\d]{5}?$/) !== null      
}

console.log(validate('12345'))
console.log(validate('1234444'))
console.log(validate('1223a'))
console.log(validate('1234'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

var match = $(input).val().trim().match(/[0-9]{5}/);

return match !== null && match[0] === match.input;