复习 regexp
/hello world/
/hello world\b/ 其实还有\B
/^hello world$/
\w [A-Za-z0-9_]
/g global
/i ignore
/m multiple
exec 通过( )分组匹配
var osVersion = 'Ubuntu 8';//其中的8表示系统主版本号
re=/^[a-z]+\s+(\d+)$/i;//用()来创建子匹配
arr =re.exec(osVersion);
console.log(arr[0]);//整个osVersion,也就是正则表达式的完整匹配
console.log(arr[1]);//分组 第一个括号所匹配的 8
反向引用 先挖个大坑 To be continued……..
非贪婪匹配
- ??
- +?
- *?
- {1,4}?
分组相关()
/([‘“])[^’”]*\1/
(?:…) 只组合不记忆
(?=…) 先行断言 指定一个位置 零宽 并非真正匹配 /Java([Ss]cript)(?=:)/ 可以匹配”Javascript: The Definitive Guide”中的Javascript 不包含冒号 但是必须要有!
(?!…) 负向先行断言
String方法
- search
- replace
- match
- split
RexExp方法
- exec
- test
通过上面的学习我尝试去分析一下Jquery源码中一个正则表达式
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/
最外面包裹的的恰好是代表完全匹配的/^…$/
次外层只组合不记忆(?:…)
- \s* 一些空格
- (<[\w\W]+>) Tag标签
- [^>]* 任意非>字符
- | 或者
- #([\w-]*)) #+任意字符或者-
所以该正则匹配的是 Tag标签 或者 #开头的字符串(获取id用吗?)。 分析的是否正确等下一篇继续介绍jQuery源码的blog再分析吧