js正则实例,常用基础

首先创建一个正则

// 字面量创建方式
var reg = /pattern/flags
//实例创建方式
var reg = new RegExp(pattern, flags);

pattern: 正则表达式
flags: 标识(修饰符)
标识主要包括:
1. i 忽略大小写匹配
2. m 多行匹配, 即在到达一行文本末尾时还会继续寻常下一行中是否与正则匹配的项
3. g 全局匹配 模式应用于所有字符串, 而非在找到第一个匹配项时停止

为什么创建正则需要两种方式呢

//这是一个错误的例子
var name = '小明'
var reg = /^\d+"+name+"\d+$/

 在字面量方式中,我们//之间包起来的所有的内容都是元字符,有的具有特殊意义,大部分都是代表本身含义的普通的元字符,但我希望实现变量的形式,那么好,使用构造实例的来完成

var reg = new RegExp("^\\d+"+name+"\\d+$","g")

字面量方式和实例创建的方式在正则中的区别?

1、字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以的。

2、字面量中直接写\d就可以,而在实例中需要把它转译\\d

-----------------------

下面开始看一些实例,由浅入深。。。

//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;

解析:以字母,数字下划线开头,长度为4到16个构成的字符串

//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;

console.log(uPattern.test("abc")); //输出 false
console.log(uPattern.test(".abc")); //输出 false
console.log(uPattern.test("abcd")); //输出 true
console.log(uPattern.test("_-abcd")); //输出 true

 知识点

1.‘^’以什么开头开头,即以后面第一个表达式开头

2.‘[]’即允许出现的字符,括号中直接放元字符,不转义

3.‘{}’允许出现匹配表达式出现的次数

4.‘$’以什么结尾,跟‘^’相对应

元字符

代表特殊含义的元字符

\d : 0-9之间的任意一个数字  \d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
 . : 除了\n之外的任意一个字符
 \ : 转义字符
 | : 或者
() : 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
 ^ : 限定开始位置 => 本身不占位置
 $ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

代表次数的量词元字符

* : 0到多个
+ : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次

以上是正则最常用到的知识,接下来的文章深入举例,共同探讨

再上一张导图,感谢原创

猜你喜欢

转载自blog.csdn.net/qq_36465347/article/details/89073005
今日推荐