正则表达式
我们已经接触过与正则表达式有关的一些概念。例如在Windows操作系统中,用“?”和“*”通配符来查找硬盘上的文件时,“?”通配符匹配文件名中的单个字符,而“*”通配符匹配零个或多个字符。如“data?.dat”就是一种文本模式,它能匹配“data1.dat”、“datan.dat”和“dataw.dat”。“data*.da”是另外一种文本模式,它匹配“data.dat”、“data1.dat”、“datawnc.dat”和“datadiff.dat”等文件名。
(1)构造函数方式 (2)普通方式 附加参数是可选的,用来扩展正则表达式的含义,主要有三个参数: (1)g:全局匹配。 (2)i:用作忽略大小写的参数。 (3)m:多行匹配。
该方法检查一个字符串中是否存在创建RegExp对象实例时所指定的正则表达式模式,如果存在则返回true,否则返回false。 检查字符串中是否存在“world”。 var regExp=new RegExp("world"); var result=regExp.test(str); document.write(result); //true </script> 检查字符串中是否存在“world”,并忽略大小写。 var regExp=/world/i; var result=regExp.test(str); document.write(result); //true </script> 将正则表达式/world/i赋给变量regExp,这是用普通方式创建正则表达式对象,附加参数i表示忽略world的大小写,所以在用正则表达式对象的test方法检查“HELLO WORLD”中是否存在“world”模式时,返回值是true。
exec方法使用RegExp对象实例创建时指定的正则表达式模式搜索字符串,并返回一个包含搜索结果的数组。 在“我爱祖国我爱家乡”中搜索“我”,并输出“我”在被搜索的字符串中的位置。 <script type="text/javascript"> var regExp=/我/; var result=regExp.exec(str); document.write("在索引"+result.index+"位置出现了"+result); </script> exec方法返回的数组有index属性,它表示匹配的字符串在整个被搜索字符串中的位置;exec方法每次从字符串的起始位置搜索第一个与模式匹配的字符串。
(1){n}:规定前面的元素或组合项要连续出现n次。 var str="heeel"; var flag= regExp.test(str) document.write(flag); </script> 执行代码后,在页面上输出true,因为在字符串“heeel”中,存在he{2}文本模式。如果要让正则表达式“he{2}”中的“he”同时受到{2}的作用,必须使用圆括号将它们括起来,使它们成为一个紧密结合的组合项,这样{2}就表示圆括号中的内容连续出现2次。 (3){n,m}:规定前面的元素或组合项至少连续出现n次,至多连续出现m次,其中n≤m,逗号和数字之间不能有空格。例如“o{1,3}”,字符串“food”和字符串“foood”都能与之匹配。 (4)+:规定前面的元素或组合项必须出现一次或连续出现多次,等效于{1,}。 (5)*:规定前面的元素或组合项可以出现零次或连续多次,等效于{0,}。例如“zo*”,字符串“z”和“zoo”都能与之匹配。 (6)?:规定前面的元素或组合项出现零次或一次,等效于{0,1}。例如“zo?”,字符串“z”和“zo”都能与之匹配。
选择匹配符有且仅有一个,即“|”字符,用于选择匹配两个选项之中的任意一个。例如“chapter|section1”匹配的是“chapter”或“section1”,如果要匹配“chapter1”或“section1”,使用括号,即“(chapter|section)1”。
(1)[…]:匹配方括号中包含的字符集中的任意一个字符。例如,正则表达式“[abc]”,字符“a”、“b”、“c”都可以与之匹配。 (2)[^…]:匹配方括号中未包含的任何字符。例如,正则表达式“[^ab]”,除了字符“a”、“b”之外,其他的任何字符都可以与之匹配。 (3)[a-z],[1-9]:匹配指定范围内的任何字符。 (4)[^a-z],[^1-9]:匹配不在指定的范围内的任何字符。 (5)d:匹配任意一个数字字符,等效于[0-9]。 (6)D:匹配任意一个非数字字符,等效于[^0-9]。 (7)s:匹配任何空白字符,包括空格、制表符等。 (8)S:匹配任何非空白字符。 (9)w:匹配任何英文字母、数字和下划线,等效于[A-Za-z0-9_]。 (10)W:匹配任何非英文字母和数字类字符,但不包括下划线,等效于[^A-Za-z0-9_]。 (11).:匹配除换行符n之外的任何单字符。
1.匹配身份证号码:^d{15}$|^d{18}$ 2.邮箱:^w+@w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$; 3.中国的邮政编码:^d{6}$ 4.匹配字符串中的中文字符:[u4e00-u9fa5] 5.验证5到12位的qq号:^d{5,12}$ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |