正则表达式
进阶
建一个14.正则表达式 HTML文件
常用的正则表达式:
建一个15.用户注册 HTML文件
建一个17.Home主页 HTML文件
正则表达式
正则表达式是匹配字符串的强大武器。它的设计理念是用描述性的语言定义字符串的规则。我们认为符合规则的字符串是匹配的,否则字符串是非法的。
因此,我们判断字符串是否合法Email的方法是:
-
创建匹配Email正则表达式;
-
用这种正则表达式来匹配用户的输入来判断它是否合法。
因为正则表达式也是用字符串表示的,所以首先要知道如何用字符来描述字符。
在正则表达式中,如果直接给出字符,则准确匹配。\d可以匹配一个数字,\w可以匹配一个字母或数字,所以:
-
'00\d'可以匹配'007',但无法匹配'00A'; -
'\d\d\d'可以匹配'010'; -
'\w\w'可以匹配'js';
.任何字符都可以匹配,所以:
'js.'可以匹配'jsp'、'jss'、'js!'等等。
在正则表达式中,应匹配变长的字符*使用任何字符(包括0个) 表示至少一个字符,用?表示0个或1个字符,使用{n}用n个字符{n,m}表示n-m个字符:
让我们复杂的例子:\d{3}\s \d{3,8}。
让我们从左到右解释一下:
-
\d{3}表示匹配三个数字,例如'010'; -
\s可以匹配一个空间(也包括Tab等空白符),所以\s至少有一个空间,比如匹配' ','\t\t'等; -
\d{3,8}例如,表示3-8个数字,'1234567'。
综上所述,上述正则表达式可以与任何空间隔开的带区号的电话号码相匹配。
如果要匹配'010-12345'这样的号码呢?'-'在正则表达式中使用特殊字符'\'因此,上述正则是\d{3}\-\d{3,8}。
但是,还是无法匹配'010 - 12345',因为有空间。因此,我们需要更复杂的匹配方法。
进阶
为了更准确地匹配,可以使用[]例如:
-
[0-9a-zA-Z\_]可匹配数字、字母或下划线; -
[0-9a-zA-Z\_]至少可以匹配由一个数字、字母或下划线组成的字符串,如'a100','0_Z','js2015'等等; -
[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可与字母或下划线相匹配,$开头,接任何一个,由一个数字、字母或下划线,$组成的字符串,也就是JavaScript允许变量名; -
[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}变量的长度是1-20个字符(前一个字符) 最多19个字符)。
A|BA或者可以匹配B,所以(J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'。
^表示行的开头,^\d必须从数字开始。
$表示行的结束,\d$表示必须以数字结束。
你可能注意到了,js也可以匹配'jsp',但是加上^js$成为整行匹配,只能匹配'js'了。
建一个14.正则表达式 HTML文件

常用的正则表达式:
- ^[a-zA-Z0-9_-] @[a-zA-Z0-9_-] (\.[a-zA-Z0-9_-] ) $
- ^1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9])\d{8}$
- ^[1-9]\d{5}(18|19|20|(3\d))\d(0[1-9]|(1[0-2])([0-2][1-9]|10|20|30|31)\d{3}[0-9Xx]$
- ^.*(?=.(6)(=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*?]).*$