<script type="text/javascript">
// 说明: 正则在不同语言的支持方法语法略有不同 js、java、php ...
var str = "Hello Java Hello java";
// 1:在js中如果要引入正则表达式,则需要:/.../
// 2:stirng.match(/表达式/) 匹配成功返回数组,否则为null
// 3:普通匹配符: 能够匹配以之对应的字符
// 4:默认正则区分大小写
// 5: i、g、m 称为正则标记符(参数): i:不区分大小写 g:全局匹配 m: 多行匹配
var r=str.match(/java/gi);
// 6:能够匹配多个字符中的其中一个匹配符: \d: 0~9 \w: 字母、数字、下划线 .:匹配除换行的所有字符(\d \w . 都只能匹配一个)
str = "hello 2016";
r=str.match(/\w.\d/g);
// 7:能够自定义规则的匹配符[],如果在[^]代表取反
str = "198" // 第二数值 3|5|8|9
r=str.match(/1[3589]\d/);
// 8:用来修饰匹配次数的匹配符 {n}: 代表前面匹配符出现n次
/*
{n,m}: 出现次数 n~m之间 {n,}: n~max {,n}: min~n
+: 1~max ?: 0~1 *: 0~max
*/
str = "18312345678";
r=str.match(/1[3589]\d{9}/);
// 9:正则表达式的完整匹配 ^: []中^代表取反,但是在外面代表的是从开始匹配 $:持续匹配的结束
// 10:特殊符号如何匹配,在正则中:^ $ . \ [] 这些符号在匹配的时候需要加\
str = "15312345678";
r=str.match(/^1[3589]\d{9}$/);
str = "153^.$[]";
r=str.match(/\^\.\$\[\]$/);
// 11: 条件分支 | 2:(): 1: 括号中的内容,成为一个独立的整体! 2: 括号的内容可以进行分组,单独匹配,不需要此功能则(?:)
// 在添加^$ 完整匹配模式下如果完整匹配成功后面才会有分组匹配的功能.
str = "12&3.jpeg";
r=str.match(/\.(?:png|gif|jpe?g)$/);
// 12: 数值的匹配 1:把合法的数值写出并分析规律 2:根据规律编写正则,并且测试非法数值
str = "-12.34E5";
r = str.match(/^(-?)(0|[1-9]\d*)(\.\d+)?([eE][-+]?\d+)?$/);
// 13: 中文的处理 默认中文采用的是双字节, 在计算机中通过ASCII对应表来输入汉字
// 来设置中文的范围即可 escape() 可以把字符串转化为ASCII编码 unescape() 可以把编码转化为中文
// console.info(escape('一') + "," + unescape(escape('一')) + "," + escape('龥'));
str = '欕eom旕eos瓰fenwa覅fiao猤fui甴gad嚿geo啹geu喼gib嗰go兝gongfen兣';
r=str.match(/[\u4E00-\u9FA5]/g);
// 14: 贪婪与懒惰: 在正则中默认是贪婪模式(尽可能多的匹配) 可以在修饰数量的匹配符(* + ? {})后面添加? 则代表懒惰
str = "aabab";
r=str.match(/a.*?b/g);
console.info(r);