js正则验证特殊字符 js正则表达式语法大全( 三 )


var reg=/hello w{3,12}/; alert(reg.test('hello js'));//false alert(reg.test('hello javascript'));//true2.exec()检索字符串中指定的值 。匹配成功返回一个数组,匹配失败返回null 。
var reg=/hello/;console.log(reg.exec('hellojs'));//['hello']console.log(reg.exec('javascript'));//null3.compile()compile() 方法用于改变正则 。compile() 既可以改变检索模式,也可以添加或删除第二个参数 。
var reg=/hello/;console.log(reg.exec('hellojs'));//['hello']reg.compile('Hello');console.log(reg.exec('hellojs'));//nullreg.compile('Hello','i');console.log(reg.exec('hellojs'));//['hello']正则表达式拓展除了RegExp对象提供方法之外,String对象也提供了四个方法来使用正则表达式,在使用JavaScript时,也常用到 。
1.match()在字符串内检索指定的值,匹配成功返回存放匹配结果的数组,否则返回null 。这里需要注意的一点事,如果没有设置全局匹配g,返回的数组只存第一个成功匹配的值 。
var reg1=/javascript/i;var reg2=/javascript/ig;console.log('hello Javascript Javascript Javascript'.match(reg1));//['Javascript']console.log('hello Javascript Javascript Javascript'.match(reg2));//['Javascript','Javascript','Javascript']2.search()在字符串内检索指定的值,匹配成功返回第一个匹配成功的字符串片段开始的位置,否则返回-1 。
var reg=/javascript/i;console.log('hello Javascript Javascript Javascript'.search(reg));//63.replace()替换与正则表达式匹配的子串,并返回替换后的字符串 。在不设置全局匹配g的时候,只替换第一个匹配成功的字符串片段 。
var reg1=/javascript/i;var reg2=/javascript/ig;console.log('hello Javascript Javascript Javascript'.replace(reg1,'js'));//hello js Javascript Javascriptconsole.log('hello Javascript Javascript Javascript'.replace(reg2,'js'));//hello js js js4.split()把一个字符串分割成字符串数组 。
var reg=/1[2,3]8/;console.log('hello128Javascript138Javascript178Javascript'.split(reg));//['hello','Javascript','Javascript178Javascript']4.两例实战第一次接触正则表达式同学们,可能被这个正则表达式的规则弄得迷迷糊糊的,根本无从下手 。小编我第一次学这个正则表达式的时候,也是稀里糊涂,什么元字符、量词完全不知道什么东西,云里雾里的 。后面小编细细研究了一下,总结一套方法,希望可以帮助大家 。
关于正则表达式书写规则,可查看w3school,上面说的很清楚了,我就不贴出来了 。我就阐述一下我写正则表达式的思路 。
其实正则表达式都可以拆成一个或多个(取值范围+量词)这样的组合 。针对每个组合我们根据JS正则表达式的规则翻译一遍,然后将每个组合重新拼接一下就好了 。下面我们举个例子来试一下,看看这个方法行不行 。
验证QQ号的合法性合法qq号规则:1、5-15位;2、全是数字;3、不以0开头
第一步:拆成(取值范围+量词)这样的组合根据QQ号的验证规则,我们可以拆成两个(取值范围+量词)的组合 。分别是:
1.(1~9的数字,1个);2.(0~9的数字,4~14个)第二步:根据正则表达式规则翻译(取值范围+量词)1.(1~9的数字,1个)=>[1-9]{1}或者[1-9]2.(0~9的数字,4~14个)=>[0-9]{4,14}第三步:将翻译好的(取值范围+量词)组合进行拼接初学者可能在拼接这一步会犯一个错误,可能会组合拼接成这个样子/[1-9]{1}[0-9]{4,14}/或者简写翻译成/[1-9] [0-9]{4,14}/这些都不对的 。调用test()方法的时候,你会发现只要一段字符串中有符合正则表达式的字符串片段都会返回true,童鞋们可以试一下 。
var reg=/[1-9][0-9]{4,14}/;alert(reg.test('0589563'));//true,虽然有0,但是'589563'片段符合alert(reg.test('168876726736788999'));//true,这个字符串长度超出15位,达到18位,但是有符合的字符串片段


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: