js正则表达式用法
js正则表达式如何界定?
js正则表达式怎么定义?
javascript正则表达式的2种定义方法:一种是立即启用RegExp(),第二种是可以直接用字面量来界定,即var re = /正则表达式标准/。
js正则表达式的2种定义方法实质全是启用RegExp()方式在启用同一段正则表达式编码的情况下,ECMAScript3和ECMAScript5中主要表现彻底不一样function reg(){ var re = /\\\\sjavascript/ return re }各自在ECMAScript3和ECMAScript5中启用reg()方式多次在ECMAScript3中,启用的是同一个RegExp目标,在ECMAScript5中,启用的是不一样的RegExp目标 由于在EXCMAScript5中每实行一次,就形成一个新的RegExp目标因此在ECMAScript3时会导致程序流程的安全隐患,由于只需在一个地区对这一目标开展改动得话,全部启用到这一另一半的位置都是会转变。
js 正则表达式?
在JavaScript中,正则表达式通常用以2个字符串方式:search()和replace()。
search()方法用以查找字符串中选定的子字符串,或查找与正则表达式相匹配的子字符串,并回到子串的初始部位。
replace()方式适用于在字符串选用一些标识符更换另一些标识符,或更换一个与正则表达式匹配的子串。
js正则表达式界定?
正则表达式,又被称为标准关系式。(英文:Regular Expression,在编码中常会缩写为regex、regexp或RE),电子信息科学的一个定义。正则表达式通常被用于查找、更换这些合乎某一方式(标准)的文字。
一、在js中界定一个正则表达式
[ ]中括号中可以写好几个任意标识符,代表只匹配一个字符
[abc]:代表可以匹配a,b,c三个字母中的任意一个英文字母
1./....../ 以 / 开始,以 / 末尾,正中间的主要内容为正则表达式
let regex=/[abc]/
2.new RegExp 目标
let regex = new RegExp(#34[abc]#34)//此行的源代码可以将一个字符串变换为正则表达式
let regex = new RegExp(/[abc]/)
二、正则表达式中的两种方式
test() :回到一个 boolean值,代表是不是匹配。
let s = #34abcde#34
console.log(/[abc]/.test(s)) //true
exec():回到一个二维数组,数组中储放正则表达式匹配的原素。
console.log(/[abc]/.exec(s))
//[#34a#34,index:0.input:#34abcde#34]
//a:匹配到的标识符
//index:匹配到的字符的数据库索引
//input:匹配的字符串
三、正则表达式在js中的功效
1.正则表达式时专业用于解决字符串的
2.正则表达式可以从字符串中 搜索 必须的数据信息
3.正则表达式可以从字符串中 获得 必须的数据信息
4.正则表达式可以从字符串中 更换 必须的数据信息
[abc]:代表可以匹配a,b,c三个字母中的任意一个英文字母
[0-9]:代表匹配任意一个数据
[a-z]:代表可以匹配小写字母中的任意一个
[A-Z]:代表可以匹配英文大写字母中的任意一个
[a-zA-Z]:代表匹配全部的英文字母
[^]:假如中括号中以^开始,代表 非
[^0-9]:代表匹配非数据的任意一个字符
[^a-z]:代表可以匹配非小写字母中的任意一个
[^A-Z]:代表可以匹配非英文大写字母中的任意一个
[^a-zA-Z]:代表匹配全部的非英文字母
缩写:
\\\\d=gt[0-9]
\\\\D=gt[^0-9]
\\\\w=gt[0-9a-zA-Z_] 匹配英文字母数据和下横线中的任意一个字符串
\\\\W:[^0-9a-zA-Z_]
\\\\s:匹配空白字符
\\\\S:除开空白符外的任何标识符
. 匹配除开换行符以外的任何的任意一个字符
\\\\. 匹配一个点
let X = / ///界定一个新的正则表达式
X{n } :匹配n个X
X{n, }:最少匹配 n个X
X{n,m}:匹配n到m个X
四、正则表达式
1.贪欲式关系式
let X = / ///界定一个新的正则表达式
//X* :匹配0 到好几个,等额的于X{0,}
//X :最少匹配一个,等额的于X{1,}
//X? :匹配较多一个等额的于X{0,1}
2.非贪欲式关系式=gt在贪欲式关系式后增加一个 ?
let X = / ///界定一个新的正则表达式
//X*? :匹配0
//X ?:最少匹配一个
//X?? :匹配较多一个
3.限定符
^ : 假如发生在正则表达式的第一个部位 代表以...开始
/^[0-9]/以0-9中任意一数据开始
$ :假如发生在正则表达式的尾端代表以...末尾
/[0-9]$/以0-9中任意一数据末尾
4.挑选
| :或
5.分类
( ... ) 小括号 组从左往右开展查看
6.引入
\\
um 引用num组的匹配具体内容,num从1逐渐
7.取名捕获组
(?ltkeygt\\\\d ) 将d 匹配的具体内容取值给key可以根据exec().groups获得key的值
8.非捕获组匹配
regex = /famil(?:y|ies)/
var s11 = #34familysss#34
console.log(regex.exec(s11))
let version = #34Wind1ow 98#34
// regex = /Window\\\\s (\\\\w )/
regex = /(?lt!Window)\\\\s (\\\\w )/
console.log(regex.exec(version))
famil(?:y|ies) 这时的小括号不可以算是分类
9.断言
?= 正方向明确断言
?! 正方向否认断言
?lt= 反方向明确断言
?lt! 反方向否认断言
10.分辨一个字符串中能否有手机号码
/1[3-9]\\\\d{9}/
//此为包括 字符串中有合乎该标准则回到true
/^1[3-9]\\\\d{9}$/
//此为一个以 1 开始 十一位的数据字符串