JavaScript: The Definitive Guide 权威指南,读书笔记(二)

本文详细介绍了正则表达式的各种语法元素,包括特殊字符、字符类、重复、选择与分组等,并通过实例展示了如何利用正则表达式进行模式匹配。
//  ======================================================================
//  第十章 正则表达式
//  ======================================================================
//  
//  RegExp对象 和 直接量
//  
//  正则表达式,就是能找到我的模式的字符串就会返回true,不管其他的字符是什么。
//  
//  特殊含义的标点符号:
//  ^ $ . * + ? = ! : | \ / () [] {}
//  
    var pattern = /s$/;  // 匹配所有s结尾的字符串
    pattern = new RegExp('s$');


    // Note: 如果记不清楚哪些标点符号需要用反斜杠转义,可以在每个标点符号之前都使用反斜杠。\


//  字符类 [] 和它包含的任意字符都匹配,如:[abc]  匹配"a","b","c"。匹配的是单个字符
//    [...]  位于括号之内的任意字符
//    [^...]  不在括号中的任意字符
//  
//    .     除 换行符 和其他Unicode行终止符之外的任意字符
//    \w    任何ASCII 单字字符,等价于[a-zA-Z0-9_]
//    \W    任何ASCII 非单字字符,等价于[^a-zA-Z0-9_]
//    \s    任何Unicode空白符
//    \S    任何非Unicode空白符,注意\w和\S不同
//    \d    任何ASCII 数字,等价于[0-9]
//    \D    除了ASCII数字之外的任何字符,等价于[^0-9]
//    [\b]  退格直接量
//    
//  重复
//    {n, m}    匹配前一项至少n次,但是不能超过m次
//    {n,}      匹配前一项n次,或更多次
//    {n}       匹配前一项恰好n次
//    ?         匹配前一项0次或1次,{0,1}
//    +         匹配前一项1次或多次。等价于{1,}   // 至少有一次
//    *         匹配前一项0次或多次。等价于{0,}  // 前一项有没有都匹配!!
//    
//    () 的作用之一: 把单独的项目组合成子表达式,以便像处理一个独立的单元那样用 | * + ? 来处理它们。
//    
//  正则表达式的选择、分组和引用字符
//    |         选择
//    (...)     组合,可以使用 | * + ?来处理它,而且可以被引用
//    (?:...)   只组合,不引用
//    \n        引用()中匹配的字符,它匹配的是字符,不是模式。忽略 (?: ),从左到右,数下左括号,不管嵌套不嵌套
//    
//  指定匹配的位置
//  
//  *正则表达式的锚字符
//  ^      匹配字符串的开头,在多行检索中,匹配一行的开头
//  $      匹配字符串的结尾,在多行检索中,匹配一行的结尾
//  \b     匹配一个词语的边界  [\b] 匹配的是退格符
//  \B     匹配不是边界
//  (?=p)  正向前声明,要求接下来的字符都与模式p匹配,但是不包括匹配中的那些字符
//  (?!p)  反向前声明,要求接下来的字符不与模式p匹配
//  
//  用于模式匹配的String方法
//  "JavaScript".search(/script/i);               // 返回4,第一次找到的字串位置。
//  "JavaScript".replace(/script/i, 'Bean');      // 返回JavaBean
//  "JavaScript".replace(/(script)/i, '$1Bean');  // 返回JavaScriptBean
//  "253dd234".match(/\d+([a-z]+)/);
//  "1,2, 3 , 4 ,5".split(/\s*,\s*/);             // 返回["1", "2", "3", "4", "5"]
//  
//  例子:
//  电子邮件地址的正则表达式分析。
//  
//  四个邮件提供商规则:
//   1. gmail.com:    使用字母,数字,句点。                 句点不能连续出现,不能出现在开头结尾。
//   2. hotmail.com:  使用字母,数字,句点,减号,下划线。   句点、减号、下划线可以一起出现(-_.)。只有句点不能连续出现且不能出现在开头结尾。
//   3. mail.163.com: 使用字母,数字,下划线。               下划线不能连续出现(不提示出错,提示已经被注册)且不能在开头结尾。
//   4. mail.qq.com:  使用字母,数字,句点,减号,下划线。   句点,减号,下划线不能连续出现且不能出现在开头结尾。
//   
//   所以我们需要验证的规则是:
//     *邮件名称*:
//         1. 可以包含字母、数字、句点、减号、下划线
//         2. 句点不能出现在开头结尾,不能连续出现
//  
//  域名注册规则:
//   可以使用:字母,数字,减号。减号可以连续,但是不能出现在头尾。
//   @右边部分:自定义部分.com.国家  // 自定义部分63个字符内, com 部分最长4位,如info, asia,国家部分 2位
//   
//  Email RegExp: 
//  0). /^[\w-]+[\w-\.]+[\w-]@[a-zA-Z0-9-]{1,63}\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2})?$/
//       优点:兼容大部分的邮件地址了。
//       缺点:句点连续不能判断出来,请知道不吝赐教。
//       思考:{1,63}是否有必要,是不是会影响执行效率?
//       (个人猜想是要影响的,+,只要知道是1个以上就可以了;{1,63}还要判断是否超过63个)
//       
//       加个(),取出@左右两部分:
//       
//       /^([\w-]+[\w-\.]+[\w-])@([a-zA-Z0-9-]{1,63}\.[a-zA-Z]{2,4}(?:\.[a-zA-Z]{2})?)$/
中文名: JavaScript权威指南 (第6版) 原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: 978-0596805524 发行时间: 2011年05月10日 语言: 英文 内容简介: Since 1996, JavaScript: The Definitive Guide has been the bible for JavaScript programmers—a programmer's guide and comprehensive reference to the core language and to the client-side JavaScript APIs defined by web browsers. The 6th edition covers HTML5 and ECMAScript 5, with new chapters on jQuery and server side JavaScript. It's recommended for experienced programmers who want to learn the programming language of the Web, and for current JavaScript programmers who want to master it. 目录: Chapter 1 Introduction to JavaScript Core JavaScript Chapter 2 Lexical Structure Chapter 3 Types, Values, and Variables Chapter 4 Expressions and Operators Chapter 5 Statements Chapter 6 Objects Chapter 7 Arrays Chapter 8 Functions Chapter 9 Classes and Modules Chapter 10 Pattern Matching with Regular Expressions Chapter 11 JavaScript Subsets and Extensions Chapter 12 Server-Side JavaScript Client-Side JavaScript Chapter 13 JavaScript in Web Browsers Chapter 14 The Window Object Chapter 15 Scripting Documents Chapter 16 Scripting CSS Chapter 17 Handling Events Chapter 18 Scripted HTTP Chapter 19 The jQuery Library Chapter 20 Client-Side Storage Chapter 21 Scripted Media and Graphics Chapter 22 HTML5 APIs Core JavaScript Reference Client-Side JavaScript Reference Colophon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值