对于元字符的理解
ID | 元字符 | 描述 |
---|---|---|
1 | + | 匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 |
2 | ? | 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。 |
3 | * | 匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。 |
4 | $ | 匹配输入行尾。 |
例1:要么是正整数,要么是小数
^[0-9]+$|^[0-9]+.[0-9]+$
例2:正整数
^\+?[1-9][0-9]*$ ==>匹配到+号
^[1-9][0-9]{1,4}$ ==>匹配第一项是1-9,其他项是0-9,并限制1-4位之间。
例3:简单校验11位手机号码
^1[1-9]{1}[0-9]{9}$
^(((17[1-9]{1})|(18[1-9]{1}))+\d{8})$==>自定义手机号码前2位
例4:匹配商品条码,编码
^(BW|BD|bw|bd)+\d*
^[0-9]{14}$
例5:匹配2到10位纯中文
^[\u4e00-\u9fa5]{2,10}$
JS去校验
function isIntNum() {
var val = document.getElementById("number").value;
if (val != "" && !isNaN(val)) {//Not a number
console.dir("是一个数字");
} else {
console.dir("不是一个数字");
}
var reg = /^\+?[1-9][0-9]*$/;
if (!reg.test(val)) {
console.dir("参数错误,请输入正整数!");
}
}
PHP去校验
if(!preg_match('/^1[1-9]{1}[0-9]{9}$/', trim($account)) )
{
throw new \LogicException($this->app->_('请输入正确手机号'));
}