html-正则表达式的应用

正则表达式在html中主要用于表单验证,常见的表单验证有:必填项验证、长度验证、特殊内容格式验证、验证两个表单控件的值是否相等、电子邮箱的格式验证等等。

1、正则表达式由两种基本字符类型组成:普通字符和元字符

  普通字符只能匹配字符串中与它们相同的字符,例如所有的字母和数字;

  元字符指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符在目标对象中的出现模式。例如^ $ . * + ? = ! : | \ / ( ) [ ] { } 

  普通字符:

字符 匹配 字符 匹配
字母或数字 自身对应的字母或数字 \? 一个?直接量
\f 换页符 \| 一个|直接量
\n 换行符 \( 一个(直接量
\r 回车 \) 一个)直接量
\t 制表符 \[ 一个[直接量
\v 垂直制表符 \] 一个]直接量
\/ 一个/直接量 \{ 一个{直接量
\\ 一个\直接量 \} 一个}直接量
\. 一个.直接量 \XXX 由十进制数XXX指定的ASCII码字符
\* 一个*直接量 \Xnn 由十六进制数nn指定的ASCII码字符
\+ 一个+直接量 \cX 控制字符^X

 

元字符:

字符 说明 字符 说明
[] 用来匹配所包含字符集合中的任意一个字符 \b 回退(并删除)一个字符(Backspace)
. 匹配除换行符以外的任意一个字符 \f 换页符
\w 匹配任意一个字母或数字或下划线,等价于[0-9a-zA-Z] \n 换行符
\W 匹配除了字母或数字或下划线或汉字以外的任意一个字符,等价于[^0-9a-zA-Z] \r 回车符
\s 匹配任意一个空白符,等价于[\f\n\r\t\v] \t 制表符(Tab键)
\S 匹配任意一个空白字符,等价于[^\f\n\r\t\v] \v 垂直制表符
\d 匹配一个数字字符,等价于[0-9]或[0123456789] * 重复0次或更多次
\D 匹配一个非数字字符,等价于[^0-9]或[^0123456789] + 重复一次或更多次
\b 匹配单词的开始或结束 ? 重复0次或1次
^ 匹配字符串的开始 {n} 重复n次
$ 匹配字符串的结束 {n,} 重复n次或更多次
    {n,m} 重复n到m次

 

2、正则表达式用 / 标记开始和结束

3、修饰符

  修饰符标记位于表达式之外,格式为:/pattern/flags

  g 修饰符:可以查找字符串中所有的匹配项(区分大小写)

  i 修饰符:不区分大小写匹配

  m 修饰符:可以使 ^ 和 $ 匹配一段文本中每行的开始和结束位置

   我们看一下加m和不加m的区别:

  s修饰符:默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n

 

我们举个例子吧:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式</title>
    <script>
        // 电信号规则:
        // 长度11位
        // 号段前三个数字是133、153、180、181、189
        window.onload=function(){
            var mobileArr=["13312345678","13712345678","18012345678", "189123456789","1531234567","181123456789"];
            var pattern=/^1[35]3\d{8}|18[019]\d{8}$/;
            document.write("手机号列表如下:<br>");
            for(i=0;i<mobileArr.length;i++){
                document.write(mobileArr[i]+"<br>");
            }
            document.write("<br>符合电信手机号规则的列表如下:<br>");
            for(i=0;i<mobileArr.length;i++){
                if(pattern.test(mobileArr[i]))
                    document.write(mobileArr[i]+"<br>");
            }
        }
    </script>
</head>
<body>

运行页面为:

 

posted @ 2021-04-07 11:25  、阿红吖  阅读(1686)  评论(0编辑  收藏  举报