JavaScript基础(20)_正则表达式

正则表达式

正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。正则表达式,就是用某种模式去匹配一类字符串的公式。

创建正则表达式的对象
1、使用构造函数创建
语法:var 变量 = new RegExp("正则表达式","匹配模式");
优势:更加灵活

2、使用字面量创建
语法:var 变量 = /正则表达式/匹配模式
优势:更加简单

"匹配模式"参数:
i(ignore case):忽略大小写
g(global):全局匹配、全文搜索

补充:使用typeof检查正则对象时,会返回object

正则表达式语法;

逻辑范围词
| 或者
- 到、至
[ ] 包含其中的任意一个。等价于"|"。(比如:[abc]代表包含a、b、c其中的任意一个,相当于包含a或b或c)
^ 非、除了(只在中括号[ ]内有这个含义)
[a-z] 任意小写字母
[A-z] 任意字母(大小写字母)
[0-9] 任意数字

量词
量词可以理解为用来描述某个字符(字符组)重复出现的次数。量词的匹配设置只对它前边的一个字符起作用。

量词
{n} 连续出现n次
{x,y} 连续出现x次到y次(y>x)
{x,} 连续出现x次以上
+ 连续出现至少1次以上,相当于{1,}
*   连续出现至少0次以上,相当于{0,}
连续出现0次或1次,相当于{0,1}
定位词
^ 以"某字符、某字符组"开头
$ 以"某字符、某字符组"结尾
转义词
\. 检查一个字符串中是否含有.
\\ 检查一个字符串中是否含有\
\w(\word) 任意字母、数字、_(下换线)      相当于[A-z0-9_] 
\W 除了任意字母、数字、_(下换线)  相当于[^A-z0-9_] 
\d(\digit)   任意数字   相当于[0-9]      
\D 除了数字   相当于[^0-9]
\s(\space) 空格
\S 除了空格
\b(\word boundary) 匹配一个单词边界,也就是单词和空格之间的位置,它本身不匹配任何字符
\B 除了单词边界
\n(\newline)   换行符
\r(\return) 回车符
\t(\table) 制表符

转义词注意:
reg = /\\/;等价于reg = new RegExp("\\\\");(字符串本身也自带转义功能)
reg = /\./;等价于reg = new RegExp("\\."); (字符串本身也自带转义功能)

举例:

手机号的正则表达式
示例:13 567890123(11位)

1、以1开头                   ^1
2、第二位3-9任意数字         [3-9]
3、第三位以后任意数字9个     [0-9]{9}$

手机号正则表达式:/^1[3-9][0-9]{9}$/

邮件的正则表达式
示例:[email protected]

任意字母数字下划线(3位以上) .任意字母数字下划线  @ 任意字母数字   .任意字母(2-5位)1到2次
^\w{3,}                    (\.\w+)*           @  [A-z0-9]+     (\.[A-z]{2-5}){1,2}$ 
 
邮件正则表达式:/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2-5}){1,2}$/

RegExp对象方法

text()
语法:正则对象.test(字符串)
解释:调用正则对象原型text方法去匹配字符串是否符合该正则表达式对象规则,如果匹配成功就返回true,匹配失败返回false。

支持正则表达式的String对象方法

split()
解释:可以将一个字符串拆分为一个数组。
补充:该方法即使不指定全局匹配,也会全都拆分。

search()
解释:查找字符串中是否有指定内容。如果字符串中含有该内容,则会返回其第一次出现的"索引"。如果没有找到指定内容,则返回-1。
补充:和indexof()功能一样,不同的是,它可以接受一个正则表达式作为参数,然后根据正则表达式去检索字符串(更灵活)。该方法即使设置全局匹配也只会查找第一个。

match()
解释:可以根据正则表达式,从一个字符串中将符合条件的内容提取出来(封装到数组返回)。
补充:默认情况下match只会找到第一个符合要求的内容,找到以后停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容。匹配模式可以设置多个,顺序无所谓。比如:ig和gi是等价的(全局匹配搜索且忽略大小写)。

replace()
解释:将字符串中指定内容替换为新的内容(默认只替换第一个)。
语法:字符串.replace(替换内容或正则表达式,新字符串)
参数:
1.被替换的内容,可以接受一个正则表达式作为参数。
2.新的内容

示例:

    

JavaScript基础(20)_正则表达式_第1张图片

你可能感兴趣的:(JavaScript,正则表达式)