Javascript与正则表达式个人总结与收录--基础篇

一、正则表达式的定义

 

  正则表达式是一种可以用于模式匹配和替换的强有力的工具。

二、正则表达式的作用

 

   1、测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个模式,这也称为数据有效性验证。     
  2、替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后将其删除,或者替换为别的内容。     
  3、根据模式匹配从字符串中提取一个子字符串。随后可以用来在文本或输入字段中查找特定文字。

三、正则表达式的常见写法

 

  现在很多正则表达式都采用了perl风格的写法,即把正则表达式的内容放在/ /中间,看起美观,最主要的是实用,方便辨别。

  当然,如果不闲麻烦也可以写成如下的格式:

       var re = new RegExp (“regContent”);

四、正则表达式的“元字符”

 

  所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

较为常用的元字符如下:

  “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。

示例:/Ro+/ 因为上述正则表达式中包含“+”元字符,所以可以与类似“Ro”,“Rocky”,“Roof”等在字母R后面连续出现一个或多个字母o的字符串相匹配。

  “*”元字符规定其前导字符必须在目标对象中出现零次或多次。

示例:/Ro*/ 因为上述正则表达式中包含“*”元字符,所以可以与类似 “Ricky”, “Rocky”或者 “Roof”等在字母R后面连续出现零个或多个字母o的字符串      

                匹配。   

  “?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。 

示例:/Ro?/  因为上述正则表达式中包含“?”元字符,所以可以与目标对象中的 “Ricky”,“Rocky”这样在字母R后面连续出现零个或一个字母o的字符串匹配。

五、正则表达式的限定符 

      有时候不知道要匹配多少字符。为了能适应这种不确定性,需要用到正则表达式中的限定符。

{n}:     n 是一个非负整数,表示匹配确定的 n 次。例如,o{2} 不能匹配 “Rocky” 中的 o,但是能匹配 “Roof” 中的两个 o。  

{n,}:    n 是一个非负整数,表示至少匹配 n 次。例如,o{2,} 不能匹配 “Rocky” 中的 o,但能匹配 “Roof”或“Whoooooa” 中的o。

{n,m}:   m 和 n 均为非负整数,其中n <= m,表示最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 “Whoooooa” 中的前三个 o

六、正则表达式中的定位符

   正则表达式中的定位符用于规定匹配模式在目标对象中的出现位置。

“^”—— 定位符规定匹配模式必须出现在目标字符串的开头  

“$”—— 定位符规定匹配模式必须出现在目标对象的结尾  

“\b”—— 定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一  

“\B”——定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内, 即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。

示例

/^Ro/  可以与类似 “Rocky”,“Rock”或“Roof”的字符串相匹配。

/ball$/  可以与类似“football”,“basketball”或 “baseball”的字符串相匹配。

/\bon/  可以与类似 “one”,“once”的字符串相匹配。

/on\b/   可以与类似“sensation”,“generation”的字符串相匹配

/on\B/  可以与类似“song”,“tone”,“tongue”的字符串相匹配()

              注:/\Bon此处匹配作用相同/

七、正则表达式中的其他常见符号

 

“()”:    在正则表达式中使用括号把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中才可匹配,当然有时在功能没有影响的情况下,会为了方便代码检查等加上括号运算符。

“|”:     在正则表达式中实现类似编程逻辑中的“或”运算。例如:/Rocky|Ricky/ 上述正则表达式将会与目标对象中的 “Rocky”或“Ricky”。

“[]”:    指定可以取的字符范围,如 [0-9] 可以匹配从0到9范围内的任何一个数字。

“[^]”: 规定目标对象中不能存在模式中所规定的字符串,即否定符。例如:/[^A-C]/ 上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。

       例如:

              alert(/[^A-C]/.test('A'));   //false

              alert(/[^A-C]/.test('AB'));  //false

              alert(/[^A-C]/.test('AD'));  //true

              alert(/[^A-C]/.test('DF'));  //true

“\”:   转义符。当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符。例如:/R\*/会与“R*”匹配而非“Ro”或“Ri”等相匹配。

八、常用正则表达式匹配

\s:   用于匹配单个空格符,包括tab键和换行符;

\S:   用于匹配除单个空格符之外的所有字符;

\d:   用于匹配从0到9的数字;

\w:   用于匹配字母,数字或下划线字符;

\W:   用于匹配所有与\w不匹配的字符;

:   用于匹配除换行符之外的所有字符。

九、正则表达式常见的运算符等价转化关系

 

o{1,}     <=>   o+

o{0,}     <=>  o*

o{0,1}   <=>   o?

    \d      <=>   [0-9]

    \w     <=>    [a-zA-Z0-9_]

十、正则表达式运算符优先级

1.\                      转义符  

2.(),(?:),(?=),[]          圆括号和方括号  

3.*,+,?,{n},{n,},{n,m}   限定符  

4.^,$,\anymetacharacter   位置和顺序  

5.|                     “或”操作 


作者:Rocky翔
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2010-04-07 21:05  RockyXiang  阅读(924)  评论(2编辑  收藏  举报