Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 1.64 KB

正则表达式的使用和常用.md

File metadata and controls

64 lines (53 loc) · 1.64 KB

正则表达式


常用正则

  • 身份证号校验,支持末尾X /(^\d{18}$)|(^\d{17}(\d|X|x)$)/
  • 姓名校验,支持藏族 /^[\u4E00-\u9FA5\uf900-\ufa2d·sa-zA-Z]{2,20}$/
  • 手机号码校验 /^1[3456789]\d{9}$/

正则表达式构成

正则表达式使用的时候包括主体修饰符,由正斜杠 '/' 声明

var patt = /regstr/igm

修饰符

  • i 大小写不敏感
  • g 全局匹配,而不是找到第一个就停止
  • m 多行匹配

修饰符可以组合使用

字符串方法

js字符串内置了对正则表达式的处理方法

  • search 检索字符串中指定的字符串,返回存在的索引位置
  • replace 用一些匹配正则表达式的子串替换字符串中的内容
var str = "hello world"
str.search(/world/i)
// 6
var str = "hello world"
var str2 = str.replace(/world/i, "js")
str2
// hello js

js正则对象RegExp

一个提供了预定义属性和方法的对象,有两种初始化方式

var patt = /hello/g
var patt = new RegExp("hello", "g")
  • test 检测字符串中是否有匹配的内容,返回true/false
  • exec 检索字符串中匹配,返回一个数组存放匹配的结果(可能是多个),无则返回null
var patt = /hello/i
patt.test("hello world") // true
patt.test("bye world") // false
var patt = /hello/g
patt.exec("hello world, hello my friend")
// ["hello", index: 0, input: "hello world, hello my friend", groups: undefined]
patt.exec("hello world, hello my friend")
// ["hello", index: 13, input: "hello world, hello my friend", groups: undefined]
patt.exec("hello world, hello my friend")
// null