美文网首页
review javascript 21:正则表达式

review javascript 21:正则表达式

作者: 蝴蝶结199007 | 来源:发表于2017-05-03 22:24 被阅读19次

定义:专门规定字符串中【字符串的规律】

(1)知识点

  • (1.1)备选字符集
  • (1.2)预定义备选字符集
  • (1.3)量词:字符集出现的次数
  • (1.4)选择和分组
  • (1.5)转义
  • (1.6)匹配指定位置
  • (1.7)预判
  • (1.8)汉字备选字符集

(2)细化

  • (2.1)备选字符集:必须且只能多选一

<pre>
一组数字:[0-9]
一组小写字母:[a-z]
一组大写字母:[A-Z]
</pre>

  • (2.2)预定义备选字符集

<pre>
\d --> [0-9]
\w --> [0-9a-zA-Z_]
\s --> 所有空字符,比如:空格 制表符 换行
\D --> 非【\d】,除了数字
. --> 除了换行和回车后的任意字符
</pre>

  • (2.3)量词:字符集出现的次数

<pre>
{min,max} --> 从某个值到某个值
{min,} --> 大于等于某个值
{n} --> 固定数量
? --> 可有可无,最多一个

  •     --> 可有可无,数量不限
    
  •     --> 至少一个,数量不限
    

</pre>

  • (2.4)选择和分组
    选择:<pre>
    或 --> |
    </pre>分组:
    <pre>
    分组 --> ( )
    </pre>

  • (2.5)转义

<pre>
转义 -->
</pre>

  • (2.6)匹配指定位置

<pre>
开头匹配 --> ^
结尾匹配 --> $
开头或者结尾匹配 --> ^xx | xx$ (中间有|)
完全匹配 --> ^xxx$ (中间没有|)
单词匹配 --> \bxxx\b
</pre>

  • (2.7)预判:在正式匹配前,先大概预判整个字符串的规则,多用于排除法
    4大类:数字,小写字母,大写字母,特殊符号

  • (2.8)汉字备选字符集:[\u4e00-\u9fa5]
    jQuery插件中已经封装了大量现成的正则表达式,比如电子邮件,html标签,url地址


(3)方法

定义 RegExp:

var patt = new RegExp("e");
  • (3.1)test() 方法检索字符串中的指定值。返回值是 true 或 false。
    test() 方法检索字符串中的指定值。返回值是 true 或 false。

  • (3.2)exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

var patt = new RegExp("e","g");

g:您可以向 RegExp 对象添加第二个参数,以设定检索

  • (3.3)compile() 方法用于改变 RegExp。

** Tips:做验证:都要前加^,后加$ **


(4)实践

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式</title>
</head>
<body>

</body>
</html>

<script type="text/javascript">
    init();
    function init() {
        phoneNum();
    }

    /**
     * 手机号:
     * +86或0086   整体可有可无,最多1次
     * 数量不限个空字符
     * 1
     * 在34578中选其一
     * 9位数字
     * (\+86|0086)?\s*1[34578]\d{9}
     */
    function phoneNum(){
        /**
         * 手机号码匹配
         * 有开头和结尾的
         */
        var p1 = new RegExp(/^1[34578]\d{9}$/);

        /**
         * 手机号码匹配
         * 没有开头和结尾的
         */
        var p2 = new RegExp(/1[34578]\d{9}/);

        // 是否匹配
        console.log(p1.test("134"));//false
        console.log(p1.test("13122222222"));//true
        console.log(p1.test("a13122222222b"));//false
        console.log(p2.test("a13122222222b"));//true

        // 找出匹配内容
        console.log(p2.exec("a13122222222b"));//13122222222
    }

</script>

RegExp:http://www.w3school.com.cn/js/js_obj_regexp.asp
RegExp 对象:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

相关文章

网友评论

      本文标题:review javascript 21:正则表达式

      本文链接:https://www.haomeiwen.com/subject/qmoktxtx.html