检查文本字段是否仅包含数字,且必须为11位数

时间:2013-02-06 09:50:52

标签: javascript jquery regex

我有这个功能来检查文本字段是否只包含数字,如果此字段中有字母则应显示错误

//Tel Validate
function is_valid_tel() {
 $this = $("#inputTel");
 var pattern = new RegExp("^[0-9]*$");
if(pattern.test($this.val())){ // valid
 if ($this.closest(".control-group").hasClass("error"))
  $this.closest(".control-group").removeClass("error");
  $this.siblings(".help-inline").css("display", "none");
return true;
} else { // error
 if (!$this.closest(".control-group").hasClass("error"))
  $this.closest(".control-group").addClass("error");
  $this.siblings(".help-inline").css("display", "block");
  return false;
 }
}

当我在文本字段中输入字母时,我没有抛出任何错误。我的jquery / javascript是有限的,但我认为这至少有用吗?因为reg exp检查0-9之间的数字。我还想检查一下如果输入一个数字,那么它匹配11位

任何帮助表示感谢

2 个答案:

答案 0 :(得分:7)

使用此正则表达式^\d{11}$

旧正则表达式

^以字符串

开头

[0-9]* 0位或更多位

$字符串结尾

新正则表达式

^以字符串

开头

\d{11} 11位数(\d == [0-9]

$字符串结尾

答案 1 :(得分:4)

尝试以下RegExp

var pattern = new RegExp("^[0-9]{11}$");

这是一个更具可读性的版本:

var pattern = new RegExp("^\d{11}$");

您会找到有关特殊字符here的便捷参考资料。