js正则表达式相关集合

文章目录

正则

创建
/**
 * 创建正则表达式
 *  构造函数创建 - test()方法检测,返回true or false
 *  字面量创建
 */
// 构造函数
var reg1 = new RegExp('a')
var reg2 = new RegExp('A', 'i')
var str1 = 'hello koa2'
var str2 = 'love pit'
console.log(reg1.test(str1)) //true
console.log(reg1.test(str2)) //false
console.log(reg2.test(str1)) //true
// 字面量
var reg3 = /a/i
console.log(reg3.test('All')) //true
// 全局匹配g慎用test() - test()每次匹配成功会生成一个lastIndex来存储匹配最后一次的位置
var reg4 = /test/g
var str3 = '_test_test'
console.log(reg4.test(str3))
console.log(reg4.lastIndex) //5
console.log(reg4.test(str3))
console.log(reg4.lastIndex) //10
console.log(reg4.test(str3))
console.log(reg4.lastIndex) //0
// 全局匹配g一般用于exec()、match()、replace()等方法
// split()
var str4 = '1a2b3c4d5e6f7g'
var result = str4.split(/[A-z]/)
console.log(result) //["1", "2", "3", "4", "5", "6", "7", ""]
// search() - 返回第一次匹配的索引
var str5 = 'hello abc hello aec afc'
// 匹配包含 abc aec afc
var result1 = str5.search(/a[bef]c/)
console.log(result1)
// match() - 从字符串中匹配到的内容封装到一个新的数组并返回;默认返回第一次成功匹配,可以设置全局匹配模式
var str6 = '1a2a3a4a5e6f7A8B9C'
var result2 = str6.match(/[a-z]/)
var result3 = str6.match(/[a-z]/g)
var result4 = str6.match(/[a-z]/gi)
console.log(result2) //['a']
console.log(result3) //["a", "a", "a", "a", "e", "f"]
console.log(result4) //["a", "a", "a", "a", "e", "f", "A", "B", "C"]
// replace() - 将字符串中指定内容替换为新的内容并返回,不改变原字符串
var str7 = 'He is right,he can do it'
// var result5 = str7.replace(/he/, 'she')
// console.log(result5) //He is right,her can do it
var result5 = str7.replace(/he/gi, 'she')
console.log(result5) //she is right,she can do it
应用
/**
 * 正则常见应用
 */
// 检测是否为合法手机号
var phone = '13723457608'
var phoneReg = /^1[3-9][0-9]{9}$/
console.log(phoneReg.test(phone)) //true
// 去除首尾空格
var testStr = ' ab c d   '
testStr = testStr.replace(/^\s*|\s*$/g, '')
console.log(testStr) //ab c d
// 判断是否为电子邮箱
var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/
var email = 'eileen@126.com'
console.log(emailReg.test(email)) // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值