这是字符串格式验证的第一部分,各位可以从中学习正则表达式的编写方法,看看匹配与不匹配的举例就会明白,可以在线进行测试。测试地址:http://www.zhongguosou.com/computer_question_tools/test_regex.aspx
表达式: ^\d{3}-\d{2}-\d{4}$
描述:此正则表达式将会匹配设备号码(美国)(SSN) ,格式为NNN-NN-NNNN.
匹配举例:333-22-4444 | 123-45-6789
不匹配举例: 123456789 | SSN
表达式: ^[a-zA-Z]$
描述: 匹配任何单一的大写或小写字母。
匹配举例: a | B | c
不匹配举例: 0 | & | AbC
表达式:(\w+)\s+\1
描述: 此表达式使用反向引用来寻找以空格分开的两个单词中出现一行中出现两次的单词。匹配像 'mandate dated'这样的。
匹配举例:hubba hubba | mandate dated | an annual
不匹配举例: may day | gogo | 1212
表达式: ^(\d{4}[- ]){3}\d{4}|\d{16}$
描述:信用卡卡号校验。检查16位四组格式的,以空个或-分开的卡号,或者连在一起的。.
匹配举例:1234-1234-1234-1234 | 1234 1234 1234 1234 | 1234123412341234
不匹配举例: Visa | 1234 | 123-1234-12345
表达式:^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$
描述:匹配主要的信用卡如: Visa (长16, 以 4开头), Mastercard (长 16, 以 51-55), Discover (长 16, 以 6011开头), American Express (长 15, 以 34 或 37开头). 所有的以 16 位数字格式,可以有或没有(-)在四个一组的数字中间。
匹配:6011-1111-1111-1111 | 5423-1111-1111-1111 | 341111111111111
不匹配: 4111-111-111-111 | 3411-1111-1111-111 | Visa
表达式: ^\s*[a-zA-Z,\s]+\s*$
描述:任何大写或小写字母组成,以逗号或空格分开的文本,空格的数量不限。
匹配:Smith, Ed | Ed Smith | aBcDeFgH
不匹配: a123 | AB5 | Mr. Ed
表达式: ^\d{9}[\d|X]$
描述:一个简单的ISBN 校验表达式 –它仅仅校验10位数字构成的,最后一位或许为X的ISBN号。
匹配:1234123412 | 123412341X
不匹配:不是一个isbn
表达式:(?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$
描述:信用卡卡号校验。
匹配:6011567812345678 | 6011 5678 1234 5678 | 6011-5678-1234-5678
不匹配: 1234567890123456
表达式: "((\\")|[^"(\\")])+"
描述:匹配以引号引起的字符串,使用斜杠的字符串。
匹配“ "test" | "escape\"quote" | "\""
不匹配: test | "test | "test\"
表达式: ^([1-zA-Z0-1@.\s]{1,255})$
描述:通用字符串校验表达式,可以防止用户输入恶意字符代码,允许输入email地址,姓名,地址,密码等等。不允许输入斜杠 *等非法字符。
匹配:email@email.com | My Name | asdf12df
不匹配: ‘,\*&$<> | 1001' string
表达式:^([A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^$
描述:匹配首字母大写的以空格分开的字符串,也匹配空字符串。
匹配: Sacramento | San Francisco | San Luis Obispo
不匹配: SanFrancisco | SanLuisObispo | San francisco
表达式:(^|\s)(00[1-9]|0[1-9]0|0[1-9][1-9]|[1-6]\d{2}|7[0-6]\d|77[0-2])(-?|[\. ])([1-9]0|0[1-9]|[1-9][1-9])\3(\d{3}[1-9]|[1-9]\d{3}|\d[1-9]\d{2}|\d{2}[1-9]\d)($|\s|[;:,!\.\?])
描述: Incorporated other people's examples; removed extraneous parenthesis on 10/7/04. Currently the SSA site says 772 is the highest AREA number generated (http://www.ssa.gov/employer/highgroup.txt). Old expression was: (^|\s)\d{3}(-?|[\. ])\d{2}\2\d{4}($|\s|[;:,!\.\?]). Looks for either the beginning of a line or whitespace before the beginning of the social security number, then either zero or one hyphen OR one of a period or space, then uses the \3 to reference the value returned in the parenthesis that includes the -?|[\. ] (basically says if the first dash, period, or space is there, then the second one is required; and if the first dash, period, or space is not there, then the second one can't be either), and finally looks for the end of a line, whitespace, or punctuation characters after the social security number.
匹配:123-45-6789 | 123 45 6789 | 123456789
不匹配: 12345-67-890123 | 1234-56-7890 | 123-45-78901
表达式:<[^>]+>
描述:这个表达式用来查找所有的开闭标记,可很好的用于HTML或XML文档的标记清理。我用来清理HTML中的XML标记。我找出所有的标记,然后删除那些非标准的的标记。
匹配: <html> | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | <
不匹配: Any plain old text | http://www.regexlib.com/Add.aspx | xml>
表达式:^[0-9]{1,}(,[0-9]+){0,}$
描述:它可以校验html页面的格式输入(checkbox, optionbox, selectbox)等,尤其是一次输入多个数字值的时候,例如用户一次选择一个或更多的时候!
匹配: 1111 | 47,26,2,1,1111,12 | 25,1245,2122,23232
不匹配: 111, | 1a1,111,1212,23 | 11aa,aaa,asas,asa
表达式:^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*<>:\;|\"/]+$
描述:对保留字符进行检查,如 <> 和 "。
匹配:abc
不匹配: PRN
表达式:^([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?\.){0,}([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?){1,63}(\.[a-z0-9]{2,7})+$
描述: [注释:这个域名通过 Macromedia's ColdFusion MX测试.我肯定它工作于其他正则引擎时还需要额外的信息。]在找了一些正则表达式后,我发现没有一个可以完全的可靠的处理子域名或者顶级域名的正则表达式。因此,我写了一个,然后测试它。它不匹配如: -.domain.com, -a.domain.com, -domain.com, domain-.com, 以及在顶级域名前的字符数超过63个的域名。匹配: a.domain.com, a-a.domain.com, a--a.domain.com, a--defg.com, domain.co.uk.
匹配: 800-med-alert.com | jump.to | archive-3.www.regexlib.com
不匹配: example | a-.domain.com | http://regexlib.com/
表达式:^(?![0-9]{6})[0-9a-zA-Z]{6}$
描述:匹配一个六位的密码,并且其中至少含有一个字母。
匹配:123a12 | a12345 | aaaaaa
不匹配: 111111