Loading

JavaScript学习 Ⅵ (正则表达式)

十三. 正则表达式

正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。

创建正则表达式对象

构造函数

var reg = new RegExp("正则表达式", "匹配模式");
匹配模式:
	i 忽略大小写
    g 全局匹配模式

字面量

使用字面量创建正则表达式

var reg = /a/i;
// 等价于
var reg = new RegExp("a", "i");

测试

test()方法可以用来检测一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false。

语法

检查一个字符串中是否有a或b:reg = /a|b/

[]里的内容也是或的关系:[ab] = a|b、[a-z] 任意小写字母、[A-z]任意字母

检查一个字符串中是否含有abc或adc或aec:reg = /a[bde]c/

检查一个字符串中不含有啊:reg = [^a]

通过量词{}设置一个内容出现的次数

检查一个字符串中是否含有aaa:reg = /a{3}/

检查一个字符串中是否含有ababab:reg = /(ab){3}/

检查一个字符串中是否含有abc或abbc或abbbc:reg = /ab{1,3}c/

检查一个字符串中是否含有abbc或abbbc或······:reg = /ab{2,}c/

其他常用量词:

+:至少1个,相当于{1,}

*:0个或多个,相当于{0,}

?:0个或1个,相当于{0,1}

检查一个字符串中是否以a开头:reg = /^a/

检查一个字符串中是否以a结尾:reg = /a$/

如果在一个正则表达式中同时使用^$,则要去字符去必须完全符合正则表达式。

检查一个字符串中是否以a开头,以a结尾:reg = /^a[A-z]*a$/

匹配电话号码:reg = /^1[3-9][0-9]{9}$/

检查一个字符串中是否含有.reg = /\./.在正则表达式中匹配任意字符)

使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符,如果需要使用\则需要使用\\来替代。

var reg = new RegExp("\.");
// 等价于
var reg = /./;
var reg = new RegExp("\\\\");
// 等价于
var reg = /\\/;		// 匹配\
\w	任意字母、数字、_ [A-z0-9_]
\W	除了字母、数字、_ [^A-z0-9_]
\d	任意数字 [0-9]
\D	除了数字 [^0-9]
\s	空格
\S	除了空格
\b	单词边界		// 独立单词	例如:匹配child reg = /\bchild\b/;
\B	除了单词边界

去除开头或结尾的空格:str.replace(/^\s*|\s*$/g, "")

匹配电子邮件:邮件格式为:1a_ + . + (1a_) + @ + 1a + . + a + . + (a)

例子:hello.nihao@abc.com.cn

\w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}

var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;

正则表达式匹配URL参数:

var reg = new RegExp('(^|&)'+ name +'=([^&]*)(&|$)');
// 直接开始或以&开始
// 任意个非&元素
// 以$或&结束
posted @ 2020-05-28 20:49  chalan630  阅读(202)  评论(0编辑  收藏  举报