常用元字符串

元字符 说明
\d 匹配   数字
\D 匹配   非数字
\w 匹配   数字,字母,下划线
\W 匹配   任意不是字母,数字,下划线
\s 匹配   空白符
\S 匹配   任意不是空白符的字符
. 匹配除换行符以外的任意字符
^ 匹配    以谁开头
$ 匹配    以谁结尾  
 
/r/n  换行符
 
var reg = /\d/    // 表示只要字符串中有数字,就符合要求
var reg = /\D/    // 表示只要字符串中有非数字,就符合要求
var reg = /\w/    // 表示只要字符串中有 数字/字母/下划线 就符合要求
var reg = /\W/    // 表示只要字符串中有 非数字/非字母/非下划线 就符合要求
 
var reg = /^a/    //表示 只要字符串以a开头就符合条件
var reg = /a$/    //表示 只要字符串以a结尾就符合条件
var reg = /^abc$/     // 要求字符串中只能有 abc
var reg = /^\d$/        //表示 只能有一个数字
var reg = /^a|b$/      //表示  以a开头或者以b结尾
var reg = /^\d{11}$/   //表示 字符串中只能出现11次数字
 
var reg = /^\d{3,}$/    //表示 字符串中只能出现3次或3次以上的数字
var reg = /\d{3,}/       //表示 字符串中只要包含3个或者3个以上的数字就符合要求   比如 ‘ ab123 ’
var reg = /^\d{3,5}$/  //表示  字符串中只能出现3~5次的数字
 
var reg = /^\d*$/      //表示  字符串中只能出现0~多个数字(要么什么都不写,要么只能是数字)
var reg = /^\d+$/      //表示  字符串中只能出现1~多个数字(字符串中至少要有一个数字)
var reg = /^\d?$/      //表示  字符串中 要么什么都没有,或者  只能出现一个数字
 
var reg = /^gr[ae]y$/   或者  var reg = var reg = /^gr(a|e)y$/    //表示 匹配 gray或者grey
 
var reg = /^[0-9]$/    //匹配从0-9的任意一个数字
var reg = /^[0-9a-z]$/    //匹配从0-9的任意一个数字 或者 a-z的任意一个字母
 

创建正则的方法 

   var reg = new RegExp()
   var reg = /字符/
 
 
test()方法
正则对象.test(字符串)  如果字符串符合正则公式,就返回true,否则返回false

限定符

限定符 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{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 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[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)$/   (身份证正则)

邮箱校验正则表达式

 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的更多相关文章

  1. javascript类型系统——正则表达式RegExp类型

    × 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String ...

  2. JavaScript学习笔记-正则表达式(RegExp对象)

    正则表达式(RegExp对象)   1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...

  3. 正则表达式(RegExp)

    正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...

  4. JavaScript数据类型 正则表达式RegExp类型

    前言 上一篇文章已经介绍了正则表达式的基础语法.javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,使用正则表达式可以进行强大的模式匹配和文本检索与替换.本文将 ...

  5. JavaScript -- 时光流逝(六):js中的正则表达式 -- RegExp 对象

    JavaScript -- 知识点回顾篇(六):js中的正则表达式 -- RegExp 对象 1. js正则表达式匹配字符之含义      查找以八进制数 规定的字符.     查找以十六进制数 规定 ...

  6. JavaScript 正则表达式RegExp 和字符串本身的正则表达式

    JavaScript 正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模 ...

  7. ES9的新特性:正则表达式RegExp

    简介 正则表达式是我们做数据匹配的时候常用的一种工具,虽然正则表达式的语法并不复杂,但是如果多种语法组合起来会给人一种无从下手的感觉. 于是正则表达式成了程序员的噩梦.今天我们来看一下如何在ES9中玩 ...

  8. VBScript: 正则表达式(RegExp对象)

    RegExp对象是VBScript中用于提供简单地正则表达式支持的对象.VBScript中所有和正则表达式有关的属性和方法都有这个对象有关联. 一.RegExp对象的属性和方法(三个属性,三个方法) ...

  9. javascript正则表达式 —— RegExp 对象

    定义 RegExp RegExp 对象用于存储检索模式. 通过 new 关键词来定义 RegExp 对象.以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e": ...

  10. 从javaScript中学习正则表达式——RegExp

    正则表达式工具:http://regexper.com   由于国外网络可以选择 https://github.com/javallone/regexper-static 离线安装作为本地服务. 正则 ...

随机推荐

  1. 【leetcode】1033. Moving Stones Until Consecutive

    题目如下: Three stones are on a number line at positions a, b, and c. Each turn, you pick up a stone at ...

  2. php strcspn()函数 语法

    php strcspn()函数 语法 作用:输出在字符串中找到某字符之前查找的字符数.直线电机参数 语法:strcspn(string,char,start,length) 参数: 参数 描述 str ...

  3. 如何配置报表服务器扩展部署(Reporting Services 配置)

    Reporting Services 支持扩展部署模式.该模式允许运行共享单个报表服务器数据库的多个报表服务器实例. 若要创建扩展部署,请使用安装程序和 Reporting Services 配置工具 ...

  4. JS占位符替换

    String.prototype.format = function() { if(arguments.length === 0) return this; var obj = arguments[0 ...

  5. WPF 设置窗体大小为显示器工作区域大小

      最近做的项目遇到一个问题,窗体在1680*1050分辨率下显示,系统字体设置为小字体时,显示没问题,但是调到中等字体时,窗体显示位置出了问题.主窗体为无边框窗体,拖动及放大缩小事件都是自己写的. ...

  6. CSU 1548 Design road(三分查找)

    题目链接:https://cn.vjudge.net/problem/142542/origin Description You need to design road from (0, 0) to ...

  7. 多行文本溢出隐藏处理,兼容ie,火狐

    问题 多行文本溢出隐藏,webkit内核浏览器如谷歌支持如下写法: overflow: hidden; text-overflow: ellipsis; display: -webkit-box; - ...

  8. oracle sqldeveloper选择性复制备份数据库

    有时需要复制的数据库比较大,复制太慢,或容易出错. 数据库小,简单的 就没这么复杂了,直接导出dmp或用工具都可以.这篇是针对比较大,选择性复制,且复制总是失败的情况. 方法如下. 工具 sqldev ...

  9. NOIP 2010 P1514 引水入城

    题目:传送门 题目概要:有一个n行m列的矩阵,每一个格子都有一个高度,路径只能从高处向低处扩散,问你如果最后一行可以全部被覆盖,最少要从第一行多少个格子开始,如果不能使最后一行全部被覆盖,求有多少个格 ...

  10. 【CDN+】 Kylin 的初步认识与理解

    前言 项目中用到了Kylin框架来处理数据,那么作为项目成员需要了解哪些关于Kylin的知识呢,本文就Kylin得基本概念和原理进行简述. Kylin基本概念 首先想到的学习路径是Kylin官网: h ...