正则表达式
Posted article-record
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式
创建正则表达式
// 通过 RegExp 构造函数创建
var regexp = new RegExp(/123/);
// 通过字面量创建
var regexp = /123/;
边界符
正则表达式的边界符(位置符)用来提示字符所在的位置
边界符 | 说明 |
---|---|
^ |
表示匹配行首的文本(以谁结束) |
$ |
表示匹配行尾的文本(以谁开始) |
如果 ^ 和 $ 在一起表示精确匹配
var re = /^abc/; // 表示匹配abc开头的字符串
var re = /abc$/; // 表示匹配abc结尾的字符串
var re = /^abc$/; // 表示精确匹配 abc 这三个字符串 abcabc也不行
// 测试方法
re.test(‘abc‘); // 返回 Boolean
字符类
[]:表示有一系列字符可供选择,只要匹配其中一个即可
var re = /abc/; // 只要包含abc即可
var re = /[abc]/; // 包含 a 或者 b 或者 c 其中一个即可
re.test(‘color‘); // true
var re = /^[abc]$/; // 三选一 只有abc其中一个才是true 其他都是false
[-]:范围符
var re = /^[a-z]$/; // 26个英文字母任意一个都是true, 多选一
// 字符组合
var re = /^[a-zA-Z0-9_-]$/; // 匹配大小写英文字母,以及数字下划线短横线的其中一个
var re = /^[^a-zA-Z0-9_-]$/; // 中括号里面包含 ^ 表示取反,大小写英文,数字下划线短横线都不可以使用
量词符
量词符用来设定某个模式出现的次数
量词 | 说明 |
---|---|
* |
重复零次或更多次 |
+ |
重复一次或更多次 |
? |
重复零次或一次 |
{n} |
重复n词 |
{n,} |
重复n次或更多次 |
{n,m} |
重复n到m次 |
var re = /^a*$/; // 表示匹配a零次或者多次
var re = /^a+$/; // 表示匹配a一次或者多次
var re = /^a?$/; // 表示匹配a零次或者一次
var re = /^a{3}$/; // 表示匹配a三次
var re = /^a{3,}$/; // 表示匹配a大于等于3次
var re = /^a{3,4}$/; // 表示匹配a大于等于3次,小于等于4次
// 量词可以规定某个模式出现的次数
var re = /^[a-zA-Z0-9]{6,12}$/; // 规定了英文大小写和数字必须大于等于6位小于等于12位
括号总结
1,大括号 量词符 里面表示重复次数
2,中括号字符集合,匹配方括号中任意字符
3,小括号 表示优先级
var re = /^abc{3}$/; // 表示匹配 c 三次 var re = /^(abc){3}$/; // 表示匹配 abc 三次
预定义类
预定义类指某些常见模式的简写
预定类 | 说明 |
---|---|
d |
匹配0-9之间任意数字,相当于[0-9] |
D |
匹配0-9以外的字符,相当于[^0-9] |
w |
匹配任一的数字字母和下划线,相当于[0-9a-zA-Z_] |
W |
除字母数字下划线以外的字符,相当于[^0-9a-zA-Z_] |
s |
匹配空格(包括换行空格制表符等),相当于[
vf] |
S |
匹配非空格[^
vf] |
// 座机号验证 | 代表或者的意思
var re = /^d{3}-d{8}|d{4}-d{7}$/; // 三个数字-8个数字或者4个数字-7个数字
正则验证、常见表达式:http://c.runoob.com/front-end/854
正则表达式替换
// str.replace(reg/substr, target);
var str = ‘很开心, 真的很开心, very happly‘;
var newStr = str.replace(/开心/, ‘**‘); // 可以使用正则表达式进行替换,但是这样的话只能替换第一个 "开心"
正则表达式参数
/表达式/[switch] switch也称为参数按照什么样的模式来匹配,有三种值
- g: 全局匹配
- i: 忽略大小写
- gi: 全局匹配顾略大小写
var newStr = str.replace(/开心|happly/g, ‘**‘); // 所有的开心或者happly都会被替换,
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性