js前端正则表达式学习简写

做一些校验,正则表达式是必不可少的,下面是我的正则表达式学习的一些记录笔记。

一些语法:

// js正则表达式用 / / 包围起来
// 需要转义(\)的字符:. * \ / ? [] {} |  
// 匹配说明
//  \d(数字) \f \n \r \t \v \w(字母 数字 下划线) \s(任意空白字符,空格 制表符 换页符 换行符 回车等)
//  \D(非数字)  \W     \S(非空白字符)
//  a|b 匹配a,b,ab,ba
//  [ab] 匹配a,b
//  [a-z] 匹配a-z(小写字母)
//  [^ab] 匹配除a,b外的任意
//  [^a-z] 匹配不是小写字母
// ? 匹配0或者1次,/ab?/ 匹配a和ab
// * 匹配0次或n次,尽可能多的匹配
// + 匹配1次以上,尽可能多的匹配
// {n} 匹配n次,比如/a{2}/ 匹配aa
// {n,} 匹配n次以上, /a{2,}/ 匹配aa aaaa等
// {n,m} 匹配n到m次, /a{1,2}/ 匹配a aa; 要求n<m
/ 判断是否为普通手机号
    var isPhone = /^1[3456789]\d{9}$/
    var str = 19927535450
    document.write('是否为手机号:',isPhone.test(str))
  • 输出结果:是否为手机号:true

// 定位符:边界符,字符串首位的地方
// ^ 匹配最开始的位置,$匹配结尾的位置,\b 匹配单词的首位边界,连续的0~9,a-z,A-Z被认为是完整的单词
// 修饰符:在双斜线外对表达式的补充标识 /ab/i:表示不区分大小写
// g 全局匹配,表示只要匹配的都返回来。如,ab,/\w/返回的仅仅是a,/\w/g,返回的是ab
// m 多行匹配,匹配所有行首和行尾
// u Unicode模式,将匹配模式当作Unicode序列
// y 仅匹配字符串中满足正则表达式的lastIndex属性指示的索引
// 一些常用函数
// regexp.exec(str):执行一次表达式匹配,返回字符串数组结果,没有结果就null.
// regexp.test(str):执行一次表达式匹配,str子串被包含返回true,否则false
// str.match(regexp):执行一次表达式匹配,返回字符串数组结果,没有结果就null.
// str.replace(regexp,newStr):字符串使用正则表达式查找子字符串,并进行替换。成功则返回新字符串,没有满足匹配的字符串则返回原来字符串。
// str.search(regexp):搜索满足匹配的字符串,返回首次匹配的子字符串索引,没有匹配的子字符串则返回-1.
// str.split(regexp): 根据正则表达式返回分割的字符串列表。
document.write('<hr>')
var str = 'hello 2021-8-18 I am waiting for you.'
var regNumber = /\d+/
document.write('<br>---str---',str) 
document.write('<br>---regexp---',regNumber.toString())  
document.write('<hr>')
document.write('<br>---regexp.exec(str)---',regNumber.exec(str))
document.write('<br>---regexp.test(str)---',regNumber.test(str))
document.write('<br>---str.match(regexp)---',str.match(regNumber))
document.write('<br>---str.replace(regexp,newStr)---',str.replace(regNumber,'2022'))
document.write('<br>---str.search(regexp)---',str.search(regNumber))
var regWord = /\s+/
document.write('<br>---regWord---',regWord.toString())
document.write('<br>---str.split(regWord)---',str.split(regWord))

输出的结果:

—str—hello 2021-8-18 I am waiting for you.
—regexp—/\d+/

—regexp.exec(str)—2021
—regexp.test(str)—true
—str.match(regexp)—2021
—str.replace(regexp,newStr)—hello 2022-8-18 I am waiting for you.
—str.search(regexp)—6
—regWord—/\s+/
—str.split(regWord)—hello,2021-8-18,I,am,waiting,for,you.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐邂逅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值