如果通过正则表达式验证用户邮件地址的格式正确,测试字符串的某个模式
分类:热门资源

如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益。

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象javascript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。

正则表达式使用详解

入门简介

正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。

简介

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。

举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。

基本语法

基本语法

举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。

在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。

基本语法

正则表达式的形式一般如下:

正则表达式的形式一般如下:

在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。

/love/

/love/其中位于 / 定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入 / 定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的 元字符 。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
较为常用的元字符包括: + , * ,以及 ? 。

正则表达式的形式一般如下:

其中位于"/"定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入"/"定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的"元字符"。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

  • 元字符规定其前导字符必须在目标对象中连续出现一次或多次。
    * 元字符规定其前导字符必须在目标对象中出现零次或连续多次。
    ? 元字符规定其前导对象必须在目标对象中连续出现零次或一次。

/love/

较为常用的元字符包括: "+", "*",以及 "?"。其中,"+"元字符规定其前导字符必须在目标对象中连续出现一次或多次,"*"元字符规定其前导字符必须在目标对象中出现零次或连续多次,而"?"元字符规定其前导对象必须在目标对象中连续出现零次或一次。

下面,就让我们来看一下正则表达式元字符的具体应用。

其中位于/定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入/定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的元字符。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符在目标对象中的出现模式。

下面,就让我们来看一下正则表达式元字符的具体应用。

/fo+/因为上述正则表达式中包含 + 元字符,表示可以与目标对象中的 fool , fo , 或者 football 等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/因为上述正则表达式中包含 * 元字符,表示可以与目标对象中的 easy , ego , 或者 egg 等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/因为上述正则表达式中包含 ? 元字符,表示可以与目标对象中的 Win , 或者 Wilson ,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

较为常用的元字符包括: +, *,以及 ?。其中,+元字符规定其前导字符必须在目标对象? 续出现一次或多次,*元字符规定其前导字符必须在目标对象中出现零次或连续多次,而?元字符规定其前导对象必须在目标对象中连续出现零次或一次。

/fo+/

有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

下面,就让我们来看一下正则表达式元字符的具体应用。

因为上述正则表达式中包含"+"元字符,表示可以与目标对象中的 "fool", "fo", 或者 "football"等在字母f后面连续出现一个或多个字母o的字符串相匹配。

{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

/fo+/

/eg*/

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
s:用于匹配单个空格符,包括tab键和换行符;
S:用于匹配除单个空格符之外的所有字符;
d:用于匹配从0到9的数字;
w:用于匹配字母,数字或下划线字符;
W:用于匹配所有与w不匹配的字符;
. :用于匹配除换行符之外的所有字符。

因为上述正则表达式中包含+元字符,表示可以与目标对象中的 fool, fo, 或者 football等在字母f后面连续出现一个或多个字母o的字符串相匹配。

因为上述正则表达式中包含"*"元字符,表示可以与目标对象中的 "easy", "ego", 或者 "egg"等在字母e后面连续出现零个或多个字母g的字符串相匹配。

(说明:我们可以把s和S以及w和W看作互为逆运算)

/eg*/

/Wil?/

下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

因为上述正则表达式中包含*元字符,表示可以与目标对象中的 easy, ego, 或者 egg等在字母e后面连续出现零个或多个字母g的字符串相匹配。

因为上述正则表达式中包含"?"元字符,表示可以与目标对象中的 "Will", 或者 "Wilson",等在字母i后面连续出现零个或一个字母l的字符串相匹配。

/s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
/d000/ 如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。
除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。 较为常用的定位符包括: ^ , $ , b 以及 B 。
^ 定位符规定匹配模式必须出现在目标字符串的开头
$ 定位符规定匹配模式必须出现在目标对象的结尾
b 定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
B 定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,
即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。
同样,我们也可以把 ^ 和 $ 以及 b 和 B 看作是互为逆运算的两组定位符。举例来说: /^hell/ 因为上述正则表达式中包含 ^ 定位符,所以可以与目标对象中以 hell , hello 或 hellhound 开头的字符串相匹配。 /ar$/ 因为上述正则表达式中包含 $ 定位符,所以可以与目标对象中以 car , bar 或 ar 结尾的字符串相匹配。 /bbom/ 因为上述正则表达式模式以 b 定位符开头,所以可以与目标对象中以 bomb , 或 bom 开头的字符串相匹配。/manb/ 因为上述正则表达式模式以 b 定位符结尾,所以可以与目标对象中以 human , woman 或 man 结尾的字符串相匹配。
为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
/[A-Z]/上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/  上述正则表达式将会与从0到9范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/ 上述正则表达式将会与任何由字母和数字组成的字符串,如 aB0 等相匹配。

/Wil?/

除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,

这里需要提醒用户注意的一点就是可以在正则表达式中使用 () 把字符串组合在一起。 () 符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 abc 等的字符串匹配,因为 abc 中的最后一个字符为字母而非数字。
如果我们希望在正则表达式中实现类似编程逻辑中的 或 运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 | 。例如:/to|too|2/ 上述正则表达式将会与目标对象中的 to , too , 或 2 相匹配。
正则表达式中还有一个较为常用的运算符,即否定符 [^] 。与我们前文所介绍的定位符 ^ 不同,否定符 [^] 规定目标对象中不能存在模式中所规定的字符串。例如:/[^A-C]/ 上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当 ^ 出现在 [] 内时就被视做否定运算符;而当 ^ 位于 [] 之外,或没有 [] 时,则应当被视做定位符。
最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符 。例如:/Th*/  上述正则表达式将会与目标对象中的 Th* 而非 The 等相匹配。

因为上述正则表达式中包含?元字符,表示可以与目标对象中的 Win, 或者 Wilson,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

/jim{2,6}/

在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。优先级如下:

除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

1. 转义符
2.(), (?:), (?=), [] 圆括号和方括号
3.*, +, ?, {n}, {n,}, {n,m} 限定符
4.^, $, anymetacharacter 位置和顺序
5.| 或 操作

/jim{2,6}/

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。

使用实例

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

b:用于匹配整个字间,通常用于精确匹配

在JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。
我们可以使用JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。
正则表达式对象
  本对象包含正则表达式模式以及表明如何应用模式的标志。
  语法 1 re = /pattern/[flags]
  语法 2 re = new RegExp("pattern",["flags"])
  参数
  re
  必选项。将要赋值为正则表达式模式的变量名。
  Pattern
  必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。
  Flags
  可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:
  g (全文查找出现的所有 pattern)
  i (忽略大小写)
  m (多行查找)

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。

s:用于匹配单个空格符,包括tab键和换行符;

  示例

/s:用于匹配单个空格符,包括tab键和换行符;

S:用于匹配除单个空格符之外的所有字符;

  下面的示例创建一个包含正则表达式模式及相关标志的对象(re),向您演示正则表达式对象的用法。在本例中,作为结果的正则表达式对象又用于 match 方法中:

/S:用于匹配除单个空格符之外的所有字符;

d:用于匹配从0到9的数字;

复制代码 代码如下:

/d:用于匹配从0到9的数字;

w:用于匹配字母,数字或下划线字符;

function MatchDemo()
  {
  var r, re; // 声明变量。
  var s = "The rain in Spain falls mainly in the plain";
  re = new RegExp("ain","g"); // 创建正则表达式对象。
  r = s.match(re); // 在字符串 s 中查找匹配。
  return(r);
  }

/w:用于匹配字母,数字或下划线字符;

W:用于匹配所有与w不匹配的字符;

如果看了上面的内容仍然感觉不过瘾的话,这里推荐大家看下正则表达式30分钟入门教程,更容易上手与学习。

/W:用于匹配所有与/w不匹配的字符;

. :用于匹配除换行符之外的所有字符。

. :用于匹配除换行符之外的所有字符。

(说明:我们可以把s和S以及w和W看作互为逆运算)

威尼斯正规官网,下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

//s+/

/s+/

上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。

上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。

//d000/

/d000/

如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。

除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。

较为常用的定位符包括: ^, $, /b 以及 /B。其中,^定位符规定匹配模式必须出现在目标字符串的开头,$定位符规定匹配模式必须出现在目标对象的结尾,/b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而/B定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把^和$以及/b和/B看作是互为逆运算的两组定位符。举例来说:

较为常用的定位符包括: "^", "$", " " 以及 "B"。其中,"^"定位符规定匹配模式必须出现在目标字符串的开头,"$"定位符规定匹配模式必须出现在目标对象的结尾, 定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而"B"定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把"^"和"$"以及" "和"B"看作是互为逆运算的两组定位符。举例来说:

/^hell/

/^hell/

因为上述正则表达式中包含^定位符,所以可以与目标对象中以 hell, hello或 hellhound开头的字符串相匹配。

因为上述正则表达式中包含"^"定位符,所以可以与目标对象中以 "hell", "hello"或 "hellhound"开头的字符串相匹配。

/ar$/

/ar$/

因为上述正则表达式中包含$定位符,所以可以与目标对象中以 car, bar或 ar 结尾的字符串相匹配。

因为上述正则表达式中包含"$"定位符,所以可以与目标对象中以 "car", "bar"或 "ar" 结尾的字符串相匹配。

//bbom/

/ bom/

因为上述正则表达式模式以/b定位符开头,所以可以与目标对象中以 bomb, 或 bom开头的字符串相匹配。

因为上述正则表达式模式以" "定位符开头,所以可以与目标对象中以 "bomb", 或 "bom"开头的字符串相匹配。

/man/b/

/man /

因为上述正则表达式模式以/b定位符结尾,所以可以与目标对象中以 human, woman或 man结尾的字符串相匹配。

因为上述正则表达式模式以" "定位符结尾,所以可以与目标对象中以 "human", "woman"或 "man"结尾的字符串相匹配。

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:

/[A-Z]/

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串,如 aB0 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 () 把字符串组合在一起。()符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 abc等的字符串匹配,因为abc中的最后一个字符为字母而非数字。

上述正则表达式将会与任何由字母和数字组成的字符串,如 "aB0" 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 "()" 把字符串组合在一起。"()"符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 "abc"等的字符串匹配,因为"abc"中的最后一个字符为字母而非数字。

如果我们希望在正则表达式中实现类似编程逻辑中的或运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 |。例如:

如果我们希望在正则表达式中实现类似编程逻辑中的"或"运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 "|"。例如:

/to|too|2/

/to|too|2/

上述正则表达式将会与目标对象中的 to, too, 或 2 相匹配。

上述正则表达式将会与目标对象中的 "to", "too", 或 "2" 相匹配。

正则表达式中还有一个较为常用的运算符,即否定符 [^]。与我们前文所介绍的定位符 ^ 不同,否定符 [^]规定目标对象中不能存在模式中所规定的字符串。例如:

正则表达式中还有一个较为常用的运算符,即否定符 "[^]"。与我们前文所介绍的定位符 "^" 不同,否定符 "[^]"规定目标对象中不能存在模式中所规定的字符串。例如:

/[^A-C]/

/[^A-C]/

上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当^出现在 []内时就被视做否定运算符;而当^位于[]之外,或没有[]时,则应当被视做定位符。

上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当"^"出现在 "[]"内时就被视做否定运算符;而当"^"位于"[]"之外,或没有"[]"时,则应当被视做定位符。

最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符/。例如:

最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符""。例如:

/Th/*/

/Th*/

上述正则表达式将会与目标对象中的Th*而非The等相匹配。

上述正则表达式将会与目标对象中的"Th*"而非"The"等相匹配。

使用实例

在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及javascript中使用正则表达式。

通常,Perl中正则表达式的使用格式如下:

operator / regular-expression / string-to-replace / modifiers

运算符一项可以是m或s,分别代表匹配运算和替换运算。

其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:

s/geed/good/

将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找—替换操作的话,可以使用参数 "g",即s/love/lust/g。

此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数 "i "。例如,

m/JewEL/i

上述正则表达式将会与目标对象中的jewel,Jewel,或JEWEL相匹配。

在Perl中,使用专门的运算符"=~"指定正则表达式的匹配对象。例如:

$flag =~ s/abc/ABC/

上述正则表达式将会把变量$flag中的字串abc替换为ABC。

下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:

#!/usr/bin/perl
# get input
print "What's your email address? ";
$email = <>
chomp($email);
# match and display result
if($email =~ /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/){
 print("Your email address is correct! ");
}else{
 print("Please try again! ");
}

如果用户更偏爱PHP的话,可以使用ereg()函数进行模式匹配操作。ereg()函数的使用格式如下:ereg(pattern, string) 其中,pattern代表正则表达式的模式,而string则是执行查找替换操作的目标对象。同样是验证邮件地址,使用PHP编写的程序代码如下:

<?php
if(ereg("^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+",$email)){
 echo "Your email address is correct!";
}else{
 echo "Please try again!";}
?>

最后,我们在来看一下javascript。javascript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。

我们可以使用javascript编写以下脚本,验证用户输入的邮件地址的有效性。

<html>
<head>
<script language="javascript">
function verifyAddress(obj){
 var email = obj.email.value;
 var pattern = /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
 flag = pattern.test(email);
 if(flag){
  alert("Your email address is correct!");
  return true;
 }else{
  alert("Please try again!");
  return false;
 }
}
</script>
</head>
<body>
<form onSubmit=return verifyAddress(this);>
<input name=email type=text>
<input type=submit value=提交>
</form>
</body>
</html>

您可能感兴趣的文章

  • PHP正则表达式使用详解(2)
  • PHP正则表达式使用详解(1)
  • PHP正则表达式集锦
  • 经常用到的正则表达式整理
  • 正则表达式的特殊字符含义
  • 常见正则表达式总结
  • JavaScript 验证手机号码的正则表达式
  • 如何写出高效率的正则表达式

...

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:如果通过正则表达式验证用户邮件地址的格式正确,测试字符串的某个模式

上一篇:特不便于协作JS制作各样图集特效,《大Smart之剑H5》的主程陈策与互联网项目高管陈源共享了 下一篇:首先要对各个标题和内容设上ID
猜你喜欢
热门排行
精彩图文