昨天发了一篇在JS中可以使用的正规表达式大全。然后晚上就有常来博客访问的小伙伴来问,如何在JS中使用这些的正规则表达式?然后自己就整理了一些关于JS中使用正则表达式的方法,给大家做个参考吧。
JS中支持正则表达式的 string 对象的方法
js中的 search,match,replace 以及 split 对象方法,都可以使用正则表达式,具体的用法,如下:
1、js search 方法使用正则表达式
search:查找与正则表达式相匹配的值,并返回其位置。
js代码:
<script> var reg = /\d/; //正则表达式,匹配数字 var str = 'abcdef123sdf'; console.log(str.search(reg)); </script>
返回值:6 (从0开始的)
注意:
(1)、search() 方法不执行全局匹配,它将忽略标志 g。
(2)、search() 是从字符串的开始进行检索,并返回第一个被匹配对像检索的位置
(3)、如果没有检测到对象,则会返回 -1
2、js match 对象方法,使用正则表达式
match:查找一个或多个与正规表达式匹配的值
例1:match 全局匹配,返回一个带有所有匹配对像的数组
js代码:
<script> var reg = /\d/g; //正则表达式,匹配数字 加 g 表示全局匹配所有的数字 var str = 'abcdef123sdf'; console.log(str.match(reg)); </script>
返回数组: ["1", "2", "3"]
例2:match 对象单个匹配,不使用修饰符 g
js代码:
<script> var reg = /\d/; //正则表达式,这里只匹配一次,不是会局部 var str = 'abcdef123sdf'; console.log(str.match(reg)); </script>
返回结果:["1", index: 6, input: "abcdef123sdf", groups: undefined]
注意:
(1)、match() 可以在字符串中,匹配一次或多次符合规则的文本,当然这主要看要匹配的正则表达式有没有标志 g
(2)、如果正则表达式没有标志 g,那么 match() 方法就只会在被检索的字符串中执行一次匹配。如果没有匹配到则返回null,否则返回一个存放了与它找到的匹配文本有关的信息的数组。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本,除了这些常规的数组元素之外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在被匹配字符串中的位置,input 属性声明的是对被匹配字符串的引用。
(3)、如果匹规则有标志 g,则 match() 方法将执行全局检索,找到被匹配文本中的所有匹配的子字符串,并组成数组进行返回(数组中只有匹配到的子字符串,没有其它属性),如未匹配到,则返回 null.
3、js replace 对象方法,使用正则表达式
replace:替换与正规表达式相匹配的值
js代码:
<script> // var reg = /\d/g; // 添加 g 表示,全局替换 var reg = /\d/; // 没有 g,只替换匹配到的第一个 var str = 'abcdef123sdf'; console.log(str.replace(reg,'A')); </script>
返回值:abcdefA23sdf
4、split对象方法 使用正则表达式,将字符串分割成数组
split:将一串字符串分割为一个数组
js代码:
js split 方法使用正则表达式,切割字符串
<script> var reg = /(?:[a-zA-Z]+)/; var str = '123a456b789c1A2B3C5'; console.log(str.split(reg)); </script>
返回值: ["123", "456", "789", "1", "2", "3", "5"]
js RegExp 对象对像正则表达式的操作
RegExp:对象是带有预定义属性和方法的正则表达式对象。
关于 RegExp 表达式,我们这里不做过多的介绍,只简单的说一下它的 exec 方法与 test 方法!
1、exec 方法:
exec:检索字符串内是否存在某值,如有返回一个数组,如没有返回 null
JS代码:
<script> test = new RegExp('niao', 'g'); console.log(test.exec('feiniaomy.com')); </script>
返回值:["niao", index: 3, input: "feiniaomy.com", groups: undefined]
2、test() 方法
test():检测一个字符串是否匹配某个模式.
js代码:
<script> test = new RegExp(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/, 'g'); //验证手机号的正则表达式 console.log(test.test('13512347895')); </script>
返架值:true
到此这篇关于javascript 中正则表达式的如何使用方法好代码教程就介绍到这了。有梦想需要尽力而为,半途而废者永无成就。更多相关javascript 中正则表达式的如何使用方法好代码教程内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!