[js]正则篇
一、正则基本概念
1、一种规则、模式、文本处理工具
2、强大的字符串匹配工具
3、在js中常与字符串函数配合使用
二、js正则写法
正则在js中以正则对象存在;
(1)var re=new RegExp(正则表达式);
(2)var re=/正则表达式/;
三、正则的基本写法
1、开始结束符 ^ $
2、元字符
(1)任意字符 [abc] abc中的任意一个
(2)范围 [a-z] 字母a到c; [1-9] 数组1到9
(3)排除 [^a-z] 排除字母a-c
(4)任意字符 .
3、量词
(1) {n} 出现n次
(2) {n,m} 最少n次,最多m次
(3) + 任意次 >0次
(4) ? 最少0次 最多1次
(5) * 可有可无
4、转译字符
\d 数字 \D 非数字
\w 数字、字母、下滑线 \W 非数字 字母 下划线
\s 空白字符 \S 非空字符
\b
是单词边界 \B非单词边界
5、其他字符
i 忽略大小写 例 re=/a/i A或者a
g 全局搜索 例 re=/\d/g 全部数字
m 多行查找 例 re =/\d/m
四、字符串使用函数
1. str.search(re) //搜索匹配字符,返回位置,如果找不到,返回-1。
2. str.math(re) //搜索字符串,返回匹配字符数组
3. str.replace(re,'替换字符') //搜索字符串,替换匹配字符
五、正则对象方法
4. re.test(str) //测试字符串是否满足正则,返回布尔值
5. re.exec(str) //类似字符串方法match
六、正则的使用
1、示例:
----------------------------------------------------------
示例 测试邮箱格式
邮箱格式: 用户名 @ 邮箱名 . com/cn
字符类型: 字符 数字 下划线 @ 字母 数字 . 字母
正则字符: \w @ [a-z 0-9] [a-z]
量词: + 1 + +
re=/^\w+@[a-z 0-9]+\.[a-z]+$/g
-----------------------------------------------------------
2、贪婪特性:
获取所有html标签
re=/^<.+>/g; 会匹配第一个《 到最后一个> 中间内容全部当做.处理
改进:
re=/^<[^<]+>/$/g;
3、惰性匹配
通过在量词后面加个问号就能实现惰性匹配
如:var regex = /\d{2,5}/g; 改为 var regex = /\d{2,5}?/g;
4、位置配置
(1)正向先行断言 (?=p)
,其中p
是一个子模式,即p
前面的位置
(2)负向先行断言 (?!p)
六、常用正则表达式
1、中文校验
^[\\u4e00-\\u9fa5]{
0
,}$
2、密码强度
^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{
8
,
10
}$
3、数字字母下划线组成的字符串
^\\w+$
4、身份证
15位:^[
1
-
9
]\\d{
7
}((
0
\\d)|(
1
[
0
-
2
]))(([
0
|
1
|
2
]\\d)|
3
[
0
-
1
])\\d{
3
}$
18位:^[
1
-
9
]\\d{
5
}[
1
-
9
]\\d{
3
}((
0
\\d)|(
1
[
0
-
2
]))(([
0
|
1
|
2
]\\d)|
3
[
0
-
1
])\\d{
3
}([
0
-
9
]|X)$
5、日期yyyy-mm-dd
^(?:(?!
0000
)[
0
-
9
]{
4
}-(?:(?:
0
[
1
-
9
]|
1
[
0
-
2
])-(?:
0
[
1
-
9
]|
1
[
0
-
9
]|
2
[
0
-
8
])|(?:
0
[
13
-
9
]|
1
[
0
-
2
])-(?:
29
|
30
)| (?:
0
[
13578
]|
1
[
02
])-
31
)|(?:[
0
-
9
]{
2
}(?:
0
[
48
]|[
2468
][
048
]|[
13579
][
26
])|(?:
0
[
48
]|[
2468
][
048
]|[
13579
][
26
])
00
)-
02
-
29
)$
[js]正则篇的更多相关文章
- js 正则学习小记之匹配字符串优化篇
原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯 ...
- 浅谈 js 字符串 trim 方法之正则篇
原文:浅谈 js 字符串 trim 方法之正则篇 关于 trim 其实没啥好说的,无非就是去除首位空格,对于现代浏览器来说只是简单的正则 /^\s+|\s+$/ 就可以搞定了.而且支持中文空格 等 ...
- [js笔记整理]正则篇
一.正则基本概念 1.一种规则.模式 2.强大的字符串匹配工具 3.在js中常与字符串函数配合使用 二.js正则写法 正则在js中以正则对象存在: (1)var re=new RegExp(正则表达式 ...
- js 正则学习小记之匹配字符串字面量优化篇
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...
- 浅谈 js 正则字面量 与 new RegExp 执行效率
原文:浅谈 js 正则字面量 与 new RegExp 执行效率 前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化 ...
- js 正则学习小记之左最长规则
原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...
- 浅谈 js 正则之 test 方法
原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. var re = /\d/; console. ...
- js 正则练习之语法高亮
原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先 ...
- js 正则之检测素数
原文:js 正则之检测素数 相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题.原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的, ...
随机推荐
- matlab中uigetfile命令的应用
matlab中uigetfile命令的应用 uigetfile命令的应用 此函数的用法为 [FileName,PathName,FilterIndex] = uigetfile(FilterSpec, ...
- 大数据时代快速SQL引擎-Impala
背景 随着大数据时代的到来,Hadoop在过去几年以接近统治性的方式包揽的ETL和数据分析查询的工作,大家也无意间的想往大数据方向靠拢,即使每天数据也就几十.几百M也要放到Hadoop上作分析,只会适 ...
- Jdbc druid数据库连接池
//测试类package druid; import util.JdbcUtilsDruid; import java.sql.Connection; import java.sql.Date; im ...
- BZOJ3994 约数个数和
3994: [SDOI2015]约数个数和 Time Limit: 20 Sec Memory Limit: 128 MB Description 设d(x)为x的约数个数,给定N.M,求 I ...
- 标准vim配置文件 带注释(适合C++编译)
我的vim配置文件,适合大多数人习惯 """""""""""""&qu ...
- Linux基础-软硬连接Block概念
建立/etc/passwd的软连接文件,放在/tmp目录下 使用文件名方式建立的软连接可以跨分区,删除目标文件后,软连接文件失效 建立/etc/passwd的硬链接文件,放在/boot下,如果不成功, ...
- 【方法】jQuery无插件实现 鼠标拖动切换图片/内容 功能
前言 我就想随便叨逼叨几句,爱看就看几句,不爱看就直接跳过看正文就好啦~ 这个方法是仿写页面时我自己研究出来,可能有比我更简单的方法. 但我不管,因为我没查我不知道,我就觉得我的最好啦,耶耶耶~ 效果 ...
- 关于UNIX的exec函数
在UNIX系统中,系统为进程相关提供了一系列的控制原语,包括:进程fork,进程exit,进程exec,进程wait等服务. 该篇文章主要与进程exec服务有关,并记录了几个需要注意留意的点. 照例给 ...
- halcon发布
1: halcon发布 : 在MFC程序中 添加 #include "include/halcon/cpp/HalconCpp.h"using namespace Halcon;# ...
- Spring4笔记5--基于注解的DI(依赖注入)
基于注解的DI(依赖注入): 对于 DI 使用注解,将不再需要在 Spring 配置文件中声明 Bean 实例.只需要在 Spring 配置文件中配置组件扫描器,用于在指定的基本包中扫描注解. < ...