正则表达式使用示例详解

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了正则表达式使用示例详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式(Regular ExPression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。@H_360_1@

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

下面通过实例代码介绍下正则表达式使用

//一个数据类型,记录文本规则,一些事先定义好的一些特殊字符,对字符串的过滤逻辑

//表单验证账号长度,字母或数字组合,高级搜索

//特点,不仅js有;极简的方式操作字符串;灵活,功能强大

// 正则表达式大全

 VAR patt1=new RegExp("e"); document.wrITe(patt1.test("The best things in life are free"));

/*是否带有小数*/

 function isDecimal(strValue ) { var objRegExp= /^/d+/./d+$/; return objRegExp.test(strValue); }

/*校验是否中文名称组成 */

 function ischina(str) { var reg=/^[/u4E00-/u9FA5]{2,4}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ }

/*校验是否全由8位数字组成 */

 function isStudentNo(str) { var reg=/^[0-9]{8}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } var arr = new Array(); var reg = new RegExp(//d/);

//表示匹配数字

 reg = reg.test("jndwjdw"); console.LOG(reg);

//正则对象。test(需要验证的字符串)

//字面量声明

var reg2 = /男|女/;

//有没有其中一个

 var reg = reg2.test("呦呦哟偶女"); console.log(reg); console.log(/男|女/.test("哈迪哈迪哈女"));

//语法

//.test();正则表达式检测某段字符串

//预定义类

 console.log(/./.test("/r")); //除了回车和换行外的任意字符  console.log(//d/.test("123")); //检测是不是数字  console.log(//D/.test("sh")); //非数字字符,只要不是数字就true,只要有一个就是true  console.log(//s/.test("/r")); //只要有不可见就true/r/n/f/h/两个空字符串拼接是false  console.log(//S/.test("ah7")); //只要有可见字符就对  console.log(//w/.test("b-8")); //所有字母数字和下短线_,只要有就是对短线  console.log(//W/.test(("bg8-@"))); //true//只要有非单词字符就是对 

//自定义类,没有/

 console.log(/d/.test("123")); //检测这段里面有不有d这个字 //  console.log(/yskma/.test("yskmama")); //true//检测这段字符串包不包含yskma,不能断开不能中间穿插别的  console.log(/yskmama/.test("ysk")); //false //或和优先级  console.log(/ysk|mama/.test("ysk")); //true  console.log(/ys(k|m)a/.test("ysk")); //false//检测这段字符串中有不有yska或者ysma  console.log(/ys(k|m)a/.test("yskma")); //false//检测这段字符串中有不有yska或者ysma 

//简单类[]代表一个字符

 console.log(/[abc]/.test("gbhigf")); //true//只要出现abc中 的任意一个就是对  console.log(/y[abc]z/.test("yaz")); //true//包含yz,并选一个a  console.log(/y[abc]z/.test("yabcz")); //false//abc只能要一个 

//负向类[^ ]取反

 console.log(/[^abc]/.test("a")); //false//除了括号外的内容才是对,有就是错,不能有括号内的  console.log(/[^abc]/.test("af")); //true//除了括号外的内容才是对,有就是错,不能有括号内的 

//范围类

console.log(/[0-9]/.test("b8jg")); //true

//组合类,组合起来就是组合类,自定义类

//^边界,以。。开头

//$以。。结尾

//^bc$严格匹配

//.回车和换行以外的

 console.log(/^6a/.test("6akjjkak")); //true  console.log(/^6.a/.test("6akjjkak")); //false  console.log(/[.]{8}/.test("6akjjkak")); //false,当前"."就是代表字符串".",此处没有8个".",所以false; console.log(/ac$/.test("6akjjkakac")); //true//ac结尾  console.log(/^6a$/.test("6a")); //true  console.log(/^/d$/.test("9")); //true//只能出现一次  console.log(/^abc/d$/.test("abc7")); //true//只能出现一次 

//量词:?0||1次;+前面的>=1次;*>=0次

 console.log(/^colo*r$/.test("color")); //true  console.log(/^colo+r$/.test("color")); //true  console.log(/^colo?r$/.test("color")); //true  console.log(/^colo?r$/.test("colr")); //true  console.log(/^colo?r$/.test("coloor")); //false  console.log(/^colo*r$/.test("colooooooor")); //true 

//量词,{}前面出现的:。。{n}n次;{n,}>=n;{n,m}...>=n..<=m

//*{0,}..?{0,1}....+{1,}

//括号总结{}次数;[]一个;()一组,分组

//转Unicode:escaPE("你好")-----Ununicod("u%hkkblpp%^Vhk")

//所有汉字在一到与之间

 console.log(/[/u4e00-/u9fa5]/.test("哈")); console.log(/[/u4e00-/u9fa5]{3}/.test("哈你好"));

//字符串替换

 var str = "abcde"; console.log(str.replace("a", "b")); //bbcde console.log(str.replace(/a/g, "b")); //bbcde

//换成句号

 var str = "a,b,c,d,e"; var str2 = str.replace(/,/g, "."); //g是替换全部  console.log(str2);

//修改成绩

 var str = "a,b,c,70,90"; var str2 = str.replace(//d{1,}/g, "100"); //g是替换全部  console.log(str2); //吧,.都改成。  var str = "a,b,c,70,90."; var str2 = str.replace(/[ , , .]/g, "。"); //g是替换全部  console.log(str2); var stra = " abc " function MyTirm(stra) { var str3 = stra.replace(/^/s+|/s+$/g, ""); //去掉前后空格空格换成空字符串  return str3; } var str2 = MyTirm(stra); console.log("==" + str2 + "==");

//想要的字符提取出来,提取邮箱 //来不及写

//math,提取符合要求的元素

//分组提取,提取邮箱的每一个部分

RegExp.$1, RegExp.$2, RegExp.$3

//检索字符indexOf();lastindexof();返回下标

 var str = "张三:1000,李四:5000,王五:8000。"; var arr = str.match(//d+/g); console.log(arr); //math返回数组,提取元素

//exec只取一个,math可以取全部的

//正则对象:test,exec........字符串:math,spilt,seArch,

//用某个字符分隔字符串

 var str = "123123@xx.COM,fangfang@valuedopinions.cn 286669312@QQ.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com..."; var arr = str.match(//w+@/w+(/./w+)+/g); console.log(arr);

//6 分组提取

 //提取email中的每一部分  var str = "123123@xx.com"; var reg = /(/w+)@(/w+)/.(/w+)(/./w+)?/; var array = str.match(reg); //获取分组的数据 ()是分组  console.log(RegExp.$1); //123123  console.log(RegExp.$2); //xx  console.log(RegExp.$3); //com //分组练习  var str = "5=a, 6=b, 7=c"; str = str.replace(/(/d)=(/w)/g, "$2====$1"); //吧567分3组,吧abc分3组,2组在前面,1组在后面  console.log(str);

//i 忽略大小写

//g 全局匹配

//控制字符串相关方法

//1、正则对象的 test exec

//2、字符串的 replace search match split

//用法:

 console.log(//d/.test("123")); console.log(/[/u4e00-/u9fa5]{3}/.test("哈你好")); //除了.test和search方法能直接执行,math,replace,split,exec都需要数组接收返回值 var str = "abc100,ccc200,ddd300"; var arr = //d+/.exec(str); console.log(arr + "这儿"); //100//只能匹配一项,可以用在分组匹配 var arr = str.match(//d+/g); console.log(arr); var str = "abc100ccc200ddd300"; var arr = str.split(//d+/); console.log(arr); var str = "哈哈哈哈,100分"; //检索里面数字出现的下标  console.log(str.search(//d+/)); var str = "abcdebfg"; var strNew = str.replace("b", "d"); console.log(strNew); console.log(str); var v = 2 new RegExp("^//d+" + v + "$").test(12) //true 

总结

脚本宝典总结

以上是脚本宝典为你收集整理的正则表达式使用示例详解全部内容,希望文章能够帮你解决正则表达式使用示例详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。