发一下牢骚和主题无关:
// ======================================================================
// 第十章 正则表达式
// ======================================================================
//
// 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})?)$/
文章结束给大家分享下程序员的一些笑话语录: 3G普不普及现在已经不是看终端了,而是看应用,有好的,便宜实用的应用,花1000多买个能用的智能手机应该不是什么难事。反过来说,你200元拿一个智能手机,没有好的应用,看个电影要几十元,也是没人用3G。
--------------------------------- 原创文章 By
匹配和字符
---------------------------------