脚本宝典收集整理的这篇文章主要介绍了前端计划——JavaScript正则表达式快速入门,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
前言:正则表达式时处理字符串中常用的手法,本文以简单的方式,快速展示了JavaScript中正则相关的基础知识点。文末还提供了几个简单的正则相关面试题。个人总结,如有错误,还望指正,
JavaScript正则表达式快速入门
两种新建语法
字面量法
var patt = /w+/i;
RegExp对象法
其中第二个变量表示修饰符,在ES5中,(1)方法不允许加第二个变量,ES6中则允许,且后面的修饰符会覆盖原修饰符。
五个修饰符
i:忽视大小写
g:全局匹配
m:多行匹配
u:用于处理大于uFFFF的字符(ES6新增)
y:类似g,但是有粘连特点(ES6新增)
部分属性
1、reg.sticky
2、reg.source
返回表达式正文(ES5)
3、reg.flags
返回修饰符(ES6新增)
量词系列
基础量词
? (0或1)
* (0个及以上)
+ (1个及以上)
开头结尾
^ 开头
$ 结尾
指定量词
{x} 指定数量
{x,} 大于X数量
{x,y} x,y之间
特殊
?=str 后面紧接str的
?!str 后面没有紧接str的
语法系列
RegExp方法
1、compile方法
patt.COMpile(newPatt)
2、exec方法
patt.exec(str)
3、test方法
patt.test(str)
String方法
1、seArch()
str.search(patt)
如果找到了,返回起始位置,否则返回-1
2、match()
str.match(patt)
3、replace()
str.replace(patt, newValue)
替换指定的内容
4、splIT()
str.split('patt')
以指定内容分割为数组
部分题目
题目一:正则校验电子邮箱
var checkEmail = function(email) {
var patt = /^([0-9A-Za-z-_.]+)@([0-9a-z]+.[a-z]{2,3}(.[a-z]{2})?)$/i
return patt.test(email);
}
//另一种写法
/^(w)+(.w+)*@(w)+((.w{2,3}){1,3})$/;
题目二: 为string添加去除前后空白字符的函数trim()
String.PRototyPE.trim = function() {
return this.replace(/^s+|s+$/g)
}
题目三:为数字添加','分割符,例如123456789输出123,456,789
function commafy(num) {
return num @R_777_315@ num.toString()
.replace(/(d)(?=(d{3})+.)/g, x => x + ',');
}
题目简析:首先是&&,短路运算符,也就是相当于if...else,当num存在时,会返回后面的值。
接下来是正则部分,注意?=后面的并不匹配,也就是比如12345678.9,实际匹配的值是2和5,在2和5后面加上',',就完成了预期。
以上是脚本宝典为你收集整理的前端计划——JavaScript正则表达式快速入门全部内容,希望文章能够帮你解决前端计划——JavaScript正则表达式快速入门所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。