关于正则表达式RegExp
常用元字符串
| 元字符 | 说明 |
|---|---|
| \d | 匹配 数字 |
| \D | 匹配 非数字 |
| \w | 匹配 数字,字母,下划线 |
| \W | 匹配 任意不是字母,数字,下划线 |
| \s | 匹配 空白符 |
| \S | 匹配 任意不是空白符的字符 |
| . | 匹配除换行符以外的任意字符 |
| ^ | 匹配 以谁开头 |
| $ | 匹配 以谁结尾 |
创建正则的方法
限定符
| 限定符 | 说明 |
|---|---|
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 代表前面的字符可以出现n次 |
| {n,} | 出现n次或更多次 |
| {n,m} | 出现n到m次 |
- [] 字符串用中括号括起来,表示匹配其中的任意一个字符,相当于或的意思([]占一个字符的位置)
- [^] 匹配除中括号以内的内容(占一个位置,不能出现[]中的任意一个字符)
- \ 转义符 (把特殊字符转义为普通字符 如 \.)
- | 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱(会把正则分为两部分)
- () 从两个直接量中选择一个,分组
- eg:gr(a|e)y匹配gray和grey
- [\u4e00-\u9fa5] 匹配汉字
案例
<script>
// 验证手机号: /^\d{11}$/ // 验证邮编: /^\d{6}$/ // 匹配 138 139 186 189 170 152 135 188开头的手机号
var reg = /^1[3578][896025]\d{8}$/ // 邮箱 xxx@xxx.com/cn
var reg = /^\w+@\w+\.(com|cn)$/
</script>
| 标志 | 说明 |
|---|---|
| i | 忽略大小写 |
| g | 全局匹配 |
| gi | 全局匹配+忽略大小写 |
//01匹配:正则对象.test(字符串) 输出true和false //02提取:字符串.match(正则对象);
// 提取字符串中的数字部分
var str = "张三:1000,李四:5000,王五:8000。";
var reg = /\d+/g //g
console.log(str.match(reg)) // ["1000", "5000", "8000"] //03替换:字符串.replace(正则/被替换的字符,替换的字符)
// 把字符中的,,替换为|
var str = 'abc,efg,123,abc,123,a'
var reg = /,|,/g
console.log( str.replace(reg,'|') ) </script>
// 2. 分组
// 数字3位.数字3位.数字3位.数字3位.数字3位
var reg = /^\d{3}\.\d{3}\.\d{3}\.\d{3}\.\d{3}$/;
var reg = /^\d{3}(\.\d{3}){4}$/
console.log(reg.test('123.123.123.123.123')); var dateStr = '2016-1-5';
// 正则表达式中的()作为分组来使用,获取分组匹配到的结果用RegExp.$1 $2 $3....来获取
var reg = /(\d{4})-(\d{1,2})-(\d{1,2})/;
if (reg.test(dateStr)) {
console.log(RegExp.$1); //
console.log(RegExp.$2); //
console.log(RegExp.$3); //
}
// <!-- 匹配一条正则,用来验证此规则:一个6~16位的字符串,必须同时包含有大小写字母和数字 -->
// 不能是纯字母, 不能是纯数字,不能纯小写和数字 不能纯大写和数字
let reg = /^(?![a-zA-Z]+$)(?![0-9]+$)(?![a-z0-9]+$)(?![A-Z0-9]+$)[a-zA-Z0-9]{6,16}$/ // 1-10位:数字 字母 下划线组成的字符串, 必须有_
// 不能是纯是数字字母
let reg = /(?!^[a-zA-Z0-9]+$)^\w{1,10}$/
// 将英文字母汉字组成的字符串,用正则给英文单词加空格
let str = "no作no死,你能你aa",
reg = /\b[a-z]+\b/ig
str = str.replace(reg, value=>{
return " " + value + " "
}).trim()//去除字符串首尾空格
console.log(str); //"no 作 no 死,你能你 aa"
身份证校验正则表达式:
邮箱校验正则表达式
var reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ (邮箱校验正则)
手机校验正则表达式
var reg = /^1[34578]\d{9}$/ (手机校验正则)
必须包含 数字 字母 和 特殊字符,且不能有汉字的 校验
/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~/.!@#$%^&)*+-])[\da-zA-Z~.!@#$%^&)+*-]{5,12}$/
特殊字符校验
const validateMessage = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入企业全称'))
} else {
var reg = /^[\u4e00-\u9fa5_a-zA-Z0-9.·-]+$/
var flag = reg.test(value)
if (!flag) {
callback(new Error('不支持特殊字符'))
}
callback()
}
}
座机号校验规则
tel: [
{ required: true, message: '请输入座机号', trigger: 'blur' },
{ pattern: /^0\d{2,3}-\d{7,8}$/, message: '正确的座机号格式,如:010-45128742', trigger: 'blur' },
{ max: 12, message: '长度最长为12位', trigger: 'blur' }
],
关于正则表达式RegExp的更多相关文章
- javascript类型系统——正则表达式RegExp类型
× 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String ...
- JavaScript学习笔记-正则表达式(RegExp对象)
正则表达式(RegExp对象) 1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...
- 正则表达式(RegExp)
正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...
- JavaScript数据类型 正则表达式RegExp类型
前言 上一篇文章已经介绍了正则表达式的基础语法.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,使用正则表达式可以进行强大的模式匹配和文本检索与替换.本文将 ...
- JavaScript -- 时光流逝(六):js中的正则表达式 -- RegExp 对象
JavaScript -- 知识点回顾篇(六):js中的正则表达式 -- RegExp 对象 1. js正则表达式匹配字符之含义 查找以八进制数 规定的字符. 查找以十六进制数 规定 ...
- JavaScript 正则表达式RegExp 和字符串本身的正则表达式
JavaScript 正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模 ...
- ES9的新特性:正则表达式RegExp
简介 正则表达式是我们做数据匹配的时候常用的一种工具,虽然正则表达式的语法并不复杂,但是如果多种语法组合起来会给人一种无从下手的感觉. 于是正则表达式成了程序员的噩梦.今天我们来看一下如何在ES9中玩 ...
- VBScript: 正则表达式(RegExp对象)
RegExp对象是VBScript中用于提供简单地正则表达式支持的对象.VBScript中所有和正则表达式有关的属性和方法都有这个对象有关联. 一.RegExp对象的属性和方法(三个属性,三个方法) ...
- javascript正则表达式 —— RegExp 对象
定义 RegExp RegExp 对象用于存储检索模式. 通过 new 关键词来定义 RegExp 对象.以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e": ...
- 从javaScript中学习正则表达式——RegExp
正则表达式工具:http://regexper.com 由于国外网络可以选择 https://github.com/javallone/regexper-static 离线安装作为本地服务. 正则 ...
随机推荐
- php内置函数分析之strtoupper()、strtolower()
strtoupper(): PHP_FUNCTION(strtoupper) { zend_string *str; ZEND_PARSE_PARAMETERS_START(, ) Z_PARAM_S ...
- Tarjan 复习小结
总算把这几个东西策清楚了. 在\(Tarjan\)算法里面,有两个时间戳非常重要,一个是\(dfn\),意为深度优先数,即代表访问顺序:一个是\(low\),意为通过反向边能到达的最小\(dfn\), ...
- CF1090J Two Prefixes
神仙题++ 还是在某校梁大讲的题qaq 我们考虑容斥 也就是本质不同字串=全部-重复的 我们只需要求重复的即可 考虑相同的s=ab 我们用长度最长的a作为代表串 如果存在一个a'b'且|a'|> ...
- 利用docker制作一个带有redis软件的镜像,供其他人使用
1. 宿主机在etc/apt/下创建一个haha的文件夹 2.宿主机将haha文件夹映射到容器的虚拟系统中etc/apt/ 3. 此时,可以在宿主机和容器虚拟机中同步创建和删除文件 4. 将宿主机中的 ...
- Java第二阶段笔记
抽象类不能创建对象 抽象类可以有构造方法成员变量成员方法静态方法final修饰的方法(只能被子类调用,不能被重写)抽象方法(可以有0个或多个) 抽象方法不能有方法体,只能以:结尾,只能存在于抽象方法中 ...
- Java 输入输出图片文件的简单方式
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
- 01-跨域-jsonp原理
jsonp能跨域,并不是因为它发送了ajax请求,而是利用动态创建的script标签. script标签没有收到浏览器同源策略的限制,是可以跨域访问的. 创建的script标签,把其src指向请求的服 ...
- Flask学习笔记01之环境搭建
使用pycharm搭建Flask运行环境 1. 打开pycharm ,创建一个新的工程 2. 选择创建Flask项目 3. Flask项目创建成功,结构如下 4. 运行项目 5. 发送请求 over!
- vue框架搭建--axios使用
前后端数据交互作为项目最基础需求(静态的除外),同时也是项目中最重要的需求. 本文重点介绍axios如何配合vue搭建项目框架,而axios的详细使用介绍请移步使用说明 1.安装 cnpm insta ...
- 关闭本机的代理服务(Proxy)
若您使用了代理服务(Proxy),可能会导致战网游戏发生网络连接.安装或更新方面的问题.请参考以下步骤来关闭您电脑的网络代理服务. Windows 按下 Windows 按鍵 + R . 在运行框中, ...