`

javascript学习笔记:正则表达式1

阅读更多
实际工作中最常用的都是一些简单的正则表达式,form验证里的邮件、中文、网址、电话等的匹配,开发中的注释匹配,这些都还好,偶尔错了多试几次就可以搞定了。

但是以下部分很少用到,今天看《javascript权威指南(第五版)》才详细了解了,算是正则表达式的进阶知识了。

正则表达式的锚字符(锚其实就是定位的意思,这个我在刚学html的时候一直没弄明白
  • ^ 匹配字符串的开头,在多行模式中匹配一行的开头
  • $ 匹配字符串的结尾,在多行模式中匹配一行的结尾
  • \b 匹配一个词语的边界,词语边界即是\w和\W之间的位置,或\w和字符串的开头和结尾的位置
  • \B 匹配非词语边界的位置。这个跟上面相反,即是\W和\W之间,\w和\w之间的位置这两种情形
  • (?=p) 正前向声明,要求接下来的字符都与模式p匹配,但是不包括匹配中的那些字符
  • (?!p) 反前向声明,要求接下来的字符与模式p匹配,


/\bhello/.test("ahello world");//false
/\bhello/.test("hello world");//true
/hello\b/.test(" hello world");//true
/hello\b/.test("hello@ world");//true @是非单词字符,所以o和@之间即是边界,也就是\b
/hello\b/.test("hello_ world");//false,该正则表达式要求hello之后有一个非单词字符(0-9,a-z,A~Z和_),但"hello_ world"中_是单词字符,所以返回false
/hello\B/.test(" hello_world");//true \B的含义与\b相反,参考上面解释,o和_之间为非词语边界
/hello\B/.test(" helloworld");//true,参考上面解释,o和w之间为非词语边界,\w和\w之间的位置
/hello\B/.test(" helloworld");//true,参考上面解释,\W和\W之间
/@\B/.test("@#");//true \W \W



正则表达式的标志(这个其实是高级匹配了)
  • i 执行不区分大小写的匹配
  • g 执行一个全局匹配,即找到所有匹配的字符串
  • m 多行模式,^匹配一行的开头和字符串的开头,$匹配一行的结尾和字符串的结尾


"javaScript is a script language".replace(/script/ig,"")//"java is a  language"
"javaScript is a script language".replace(/script/g,"")//javaScript is a  language"
"javaScript is a script language".replace(/script/i,"")//java is a script language"


----未完待续
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics