JS10

作者: 社会你码ge | 来源:发表于2017-06-12 09:12 被阅读0次

    正则表达式 (规则表达式)

           定义:使用单个字符串来描述、匹配一系列符合某个语法规则的字符串搜索模式。

           ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

    和正则相似的事物

            女人的心

            道士的符

            医生的字

            正则表达式

    正则表达式的作用

            操作字符串是正则唯一的作用

            验证用户名

            验证电话号码

            验证密码等表单元素

            聊天软件的表情

            新闻采集  --小偷程序

            ....

    正则表达式的定义

    1、var res = /html5/

    2、var res = new RegExp(/html5/);

    3、var res = RegExp(“html5”);

        ECMA5规定正则对象为独立的实例

            var a = /a/;

            var b = /a/;

            console.log(a==b);

            return false;

    表单的简单验证

    1、html中直接验证: input type="text" pattern="\w{2}"

    2、使用js进行正则验证

            定义字符串 var email = "abc";

            定义正则语句 var reg = /b/;

            返回匹配结果(数组) console.log(email.match(res)); --input: 对字符串对象的引用

    定义正则语句

        正常的字母数字都是原子

            var str = "abcebd123";

            var reg = /b/;

            console.log(str.match(reg));

    特殊字符

    1.\n查找换行符

    2.\f查找换页符 --打印机 或 操作系统等终端

    3.\r查找回车符

    4.\t查找制表符 (tab键)

    5.\v垂直制表符 --打印机 或 操作系统等终端

    6.匹配unicode字符console.log(text.match(/\u50bb\u903c/));

    注意:特殊字符串的匹配:var s = 'abcabcaff';匹配abca

    字符类

    1、[abcdef] 可选列表,只能是原子列表中的一个字符

    2、[7-9] 多选列表(连字符),7-9之间的数字

    3、\u2E80--\u9fff 所有的文字包括日语韩语等

    4、[^7-9] 取反,不是7-9之间的数字 ([a-zA-Z0-9_])

    5、\d 匹配所有数字

    6、\D 匹配所有非数字

    7、\w 匹配数字字母下划线

    8、\W 除了数字字母下划线

    9、\s 表示所有空白字符 包括 \r \n \t

    10、\S 表示所有可见字符

    11、.匹配所有除了\n \r

    正则重复 {原子数量修饰符}

        注:修饰紧挨着的一个原子

    1、+ 表示一个或者多个(连续的) /a+/

    2、? 表示0或者一个 /a?/

    3、* 表示任意个 /a*/

    4、{} {m,n} 表示m到n个 /a{3,5}/

    5、{m,} 表示大于m /a{3,}/

    6、{m} 表示m个 /a{m}/

    7、{0,m} 表示0-m个 /a{0,5}/ --{,m} X

    非贪婪模式 ?

      console.log("aaaaaaaaaaaaaaaaaa".match(/\w{2,10}/)); 贪婪

      console.log("abcdefhigklmnopqr".match(/\w{2,6}?/));  非贪婪

    特殊原子的匹配 --在正则中具有特殊意义的符号需要转义

           ?

            \

           //

           .

          *

           等等.......

    选择修饰符 |

            /a|b/          匹配a或者b

            /abc|def/      匹配abc或者def    字符串结合优先级大于选择符

            /ab(c|d)ef/    改变优先级  匹配abcef  abdef

    模式单元修饰符 ()

        将多个原子视为一个原子 str.match(/(abc){1,3}/);

    1、将匹配的内容暂存在内存 'abc'.match(/(a)(b)(c)/);

    2、提高优先级 'abcdef'.match(/ab(c|d)ef/);

    3、将括号的内容反向引用 console.log("abcac".match(/(\w)\w(\w)\1\2/));

    4、使用(?:)取消暂存内存的特性,没有暂存在内存不能进行引用 console.log("abc".match(/(?:ab)(c)/));

    console.log("abcc".match(/(?:\w)\w(\w)\1/));

    相关文章

      网友评论

          本文标题:JS10

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