正则表达式
用来校验数据的一种方法,严格区分大小写.
创建方法
1.**var 变量 =new RegExp(“正则表达式”,“匹配”)**
正则表达式测试方法:test()
2. var 变量 =/正则/匹配模式
匹配:i 忽略大小写
g 全局匹配
用法
1.创建一个正则,需要检查一个字符串中是否有a或b
var str=/a|b/=[ab]
2.创建一个正则,需要检查一个字符串中是否有字母
var str=/a|b|c|.../
a|b = [] 也表示或
var str=[abc...]
[a-z] 表示任意小写字母
[A-Z] 表示任意大写字母
[A-z] 表示任意字母
[0-9] 表示任意数字
var str =/[a-z]/
3.检查一个字符串是否有abc或adc或aec
var str=/a[bde]c/
4.除了a或c的其他数
[^ ]除了
var str =/[^ac]/
##量词
{n} 正好出现次数 -只对前面一个数有作用
{m,n} 出现m-n次
{m,} 出现m次以上
+ 至少一个 相当于{1,}
* 0个或多个,相当于{0,}
? 0个或1个,相当于{0,1}
^ 表示开头
$ 表示结尾
var result =/^a|a$/ 已a开头或结尾
5.创建一个正则查看一个字符串中有aaa
var result=/a{3}/
6.a出现1-3次
var result=/ba{1,3}c/
##元字符
. 表示任意字符
\ 表示转义子符
\. 表示.
\\ 表示\ 在构造函数需要用\\来转义
\W 除了字母,数字,下划线
\w 任意字母,数字,下划线
\d 任意数字
\D 除了数字
\s 空格
\S 除了空格
\B 除了单词边界
\b 单词边界 -检查单词是否在两边
7.去除两边空格
var str=" hello "
result=str.replace(/\s/g,"")
var str=" he llo "
result= str.replace(/^\s|\s*$/g,"")
8. 给一个连字符串例如:get-element-by-id
var str = "get-element-by-id";
var reg = /-(\w)/g;
console.log(str.replace(reg, function(match, p1){
return p1.toString().toUpperCase();
})); //getElementById
js与正则
## 支持正则的String方法
1.split() -可以将一个字符串拆分为一个数组
var str ="1a2b3c4d5e"
var result =str.split("字母") -只能选择一个
-这里可以通过正则来作为参数
var result =str.split(/A-z/);- 无论有没有全局,都会被拆分
结果:“1,2,3,4,5”
2. search() -可以搜素字符串是否是指定内容 -只会查找第一个,不会全局查找
var str ="h abc h aec afc"
搜素abc或aec或afc
var result =str.search("abc")-只能搜一个
result =str.search(/a[bef]c/)-输出最想搜索到的
3.match() -可以根据正则,从一个字符串中将符合条件的内容提取出来
var str ="1a2b3c4d5e"
result =str.match(/[A-z]/g)=str.match(/[a-z]/gi)
match()将数据内容封装到一个数组中返回,即使是一个数据
4.replace() - 可以将字符串中指定内容替换为新的内容
- 参数:被替换的内容,新的内容
var str ="1a2a3c4b5a"
result=str.replace(/a/,"") -默认只替换第一个a
result=str.replace(/a/gi,"") -定义全局,替换所有a
result=str.replace(/[a-z]/gi,"") -修改所有字母
日常
1.手机号:11位
以1开头 ^1
第2位3-9任意数字 [3-9]
3位以后任意数字 [0-9]{9}$
var str=/^1[3-9][0-9]{9}$/
2.电子邮件
var str=/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/
1743163629@qq.com