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

问题描述 投票:1回答:2

我有一个已经连接到我的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个字符)
javascript regex
2个回答
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
投票
var match = $(input).val().trim().match(/[0-9]{5}/);

return match !== null && match[0] === match.input;
© www.soinside.com 2019 - 2024. All rights reserved.