JavaScript:正则表达式

在线测试工具

对于元字符的理解

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->_('请输入正确手机号'));
}
$name = "小明";
if (!preg_match("/^[\x80-\xff]{2,36}$/", $name)) {
    echo "不是中文";
} else {
    echo "yes"; 
}
$bn = "bw1234566";
if (!preg_match_all('/^BW[1-9]\d*/i', $bn)) {
    echo 'no';
} else {
    echo 'yes';
}

你可能感兴趣的:(js,正则表达式)