已被阅读 1273 次 | 文章分类:javascript | 2018-03-13 19:41
RegExp:是正则表达式(regular expression)的简写。正则表达式是通过自定义的一个字符或者字符串规则,利用正则方法从文本中匹配得到想要的内容;该文主要以实例简单讲解RegExp对象的修饰符、方法、以及支持以RegExp对象作为参数的string方法;
一:创建一个RegExp表达式:创建一个正则表达式有两种方法直接法和构造函数的方法
(1): /pattern/attributes
(2): new RegExp(pattern, attributes);
二:RegExp表达式修饰符
i:区分大小写的匹配,找到第一个匹配值立即停止; g:全文本匹配,匹配到第一个继续匹配,直到查询完整个文本; m:可以执行多行匹配;
<script type="text/javascript">
var str="Welcome to xiaobaiGIS";
var regexp1=/o/i;
console.log(str.match(regexp1));
</script>
结果:["o"]
<script type="text/javascript">
var str="Welcome to xiaobaiGIS";
var regexp1=/o/g;
console.log(str.match(regexp1));
</script>
结果:["o","o","o"]
三:RegExp表达式对象的方法(方法的参数是字符串)
(1) test(stringObj): 该方法用于检测一个字符串是否匹配某个模式.若匹配返回true,不匹配返回false
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS";
var regexp1 = new RegExp("xiaobaiGIS","i");
console.log(regexp1.test(str));
</script> //结果:true
(2) esec(stringObj): 该方法exec() 方法就是用来检索字符串中正则表达式的匹配,如果匹配到了那么就返回一个存放有结果的数组,如果没有匹配到就返回一个null
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS";
var regexp1 = /GIS/g;
document.write(regexp1.exec(str));
</script> //结果:["GIS"]
(3) compile(stringObj): 该方法用于检测一个字符串是否匹配某个模式.若匹配返回true,不匹配返回false
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS,GIS is nice";
var regexp1 = /(xiaobai)?GIS/g;
regexp1.compile(regexp1);
console.log(str.replace(regexp1,"popstar"));
</script>
结果:Welcome to popstar,popstar is nice; 其中(xiaobai)?是匹配任何包含零个或一个 "xiaobai" 的字符串,在这里的意思便是,匹配满足xiaobaiGIS和GIS的片段,后续会有元字符的教程;
四:将RegExp表达式对象作为参数的string方法
(1) string.match(RegExpObj): 该方法可在字符串内检索指定的值,找到一个或多个正则表达式的匹配,返回匹配值的数组 该数组的内容依赖于 regexp 是否具有全局标志g,如果有则返回所有匹配值,若没有则返回第一个匹配值
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS,GIS is nice";
var regexp1 = /GIS/;
console.log(str.match(regexp1) + "</br>");
var regexpG = /GIS/g;
console.log(str.match(regexpG));
</script> //结果:["GIS"]
["GIS","GIS"]
(2) string.replace(RegExpObj): 该方法replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS,GIS is nice";
console.log(str.replace(/GIS/g, " a"))
</script> //结果:Welcome to xiaobai a, a is nice
(3) string.search(RegExpObj)): 该方法search() 方法用于检索字符串中指定的子字符串,返回指定子字符串的起始索引位置
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS,GIS is nice";
console.log(str.search(/GIS/, " a"))
</script> //结果:18
(4) string.split(RegExpObj)): 该方法用于把一个字符串分割成字符串数组
<script type="text/javascript">
var str = "Welcome to xiaobaiGIS,GIS is nice";
console.log(str.split(/\s+/))
</script> //结果:["Welcome","to","xiaobaiGIS","GIS","is","nice"]
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号