正则表达式

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都会被替换,

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式