大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> Script -> 用正则表达式作校验

用正则表达式作校验

时间: 2021-07-31 作者:daque

本例证明怎样大略地校验输出数据能否为空。存户端javascript校验代码:01:<html>02:<head>03: <title>validation example</title>04: <script langauge="javascript">05:  // 即使输出值为空,因变量归来false06:  function checkenteredsomething (stringtocheck, fieldname) {07:   var respacecheck = /^\s*$/;  //创造正则表白式东西08:09:   if (respacecheck.test(stringtocheck)) {10:    alert('you must enter something into the ' + fieldname + ' field.');11:    return false; //输出堕落12:   }13:   14:   return true; //输出精确15:  }16: </script>17:</head>18:<body>19: <form name="testform" id="testform" method="post" action="" 20:   onsubmit="return(checkenteredsomething(   window.document.testform.username.value, 'name'));">21: <center>22: what is you name? <input type="text" name="username" id="username" value="" /><br />23: <input type="submit" name="submitbutton" id="submitbutton" value="enter" />24: </center>25: </form>26:</body>27:</html>

不妨看到,用javascript编写正则表白式校验并不难。在第7行,用斜线(/)创造正则表白式东西。二个斜线之间即是正则表白式典型。"^"是字符串开始,"\s"表白空格(space)和跳格(tab),"*"是通配符,"$"是字符串中断。

第9行是正则表白式的检验和测定本领,尝试输出的字符串能否与正则表白相配合。即使尝试为真,就证明输出值为空。我把校验进程包装在一个因变量里,不妨将它存为包括文献,凡有须要输出校验的网页都不妨用。

那么对存户端不扶助javascript的欣赏器、部分电子辅助(pda)、挪动电话如何办呢?不妨用效劳端asp网页的vbscript来编写代码。

效劳端vbscript校验代码:01:<%@ language = vbscript02: enablesessionstate = false%>03:<!-- test.asp file -->04:<%05:dim username06:dim respacecheck07:dim formpost08:dim failedtest09:00:if request.form.item("submitbutton") = "enter" then11: formpost = true12:else13: formpost = false14:end if15:16:if formpost then17: username = request.form.item("username")18: set respacecheck = new regexp19: respacecheck.pattern = "^\s*$"20:21: failedtest = respacecheck.test(username)22:end if23:%>24:<html>25:<head>26: <title>validation example</title>27:</head>28:<body>29: <center>30: <%if formpost then31:  if failedtest then%>32:   <b><font color="red">you must enter something into     the name field.</font></b>33:  <%else%>34:   <b>hello <%=username%>!</b>35:  <%end if%>36:  <br />37: <%end if%>38: <form name="testform" id="testform" method="post" action="test.asp">39: what is you name? <input type="text" name="username"     id="username" value="" /><br />40: <input type="submit" name="submitbutton" id="submitbutton"     value="enter" />41: </form>42: </center>43:</body>21:</html>

二者之间没有太大各别。在第18行创造正则表白式东西,19行树立正则表白典型,而后举行比拟辨别。

配合示例此刻举例证明更搀杂的校验,如ip地方的尝试。

存户端javascript配合校验代码:01:<html>02:<head>03: <title>match example</title>04: <script langauge="javascript">05:  // 即使ip地方不法,归来false06:  function checkipaddress (ipaddressstring) {07:   var respacecheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;08:   var passedtest = false;09:   10:   if (respacecheck.test(ipaddressstring)) {11:    ipaddressstring.match(respacecheck);12:    if (regexp.$1 <= 255 && regexp.$1 >= 0 13:      && regexp.$2 <= 255 && regexp.$2 >= 0 14:      && regexp.$3 <= 255 && regexp.$3 >= 0 15:      && regexp.$4 <= 255 && regexp.$4 >= 0) {16:     passedtest = true;17:    }18:   }19:   20:   if (!passedtest) {21:    alert('you must enter a valid ip address.');22:    return false;23:   }24:   25:   return true;26:  }27: </script>28:</head>29:<body>30: <form name="testform" id="testform" method="post" action="" 31:  onsubmit="return(checkipaddress(    window.document.testform.ipaddress.value));">32: <center>33: enter an ip address: <input type="text" name="ipaddress"     id="ipaddress" value="" /><br />34: <input type="submit" name="submitbutton" id="submitbutton"     value="enter" />35: </center>36: </form>37:</body>38:</html>

第7行代码创造正则表白式东西。但这次表白式的典型各别。小括号()里的参数是为反面的子尝试用的。"\d"表白数字配合,"\d+"则诉求起码配合一个数字。在尝试输出值配合之后,用子尝试决定每个节的数字都在0 - 255之间。子尝试时用到全部东西regexp,它在挪用string.match本领时机动天生。

运用vbscript要多写些代码,但也能实行同样的功效。

效劳端vbscript配合校验代码:01:<%@ language = vbscript02: enablesessionstate = false%>03:<!-- test2.asp file -->04:<%05:dim ipaddress06:dim reipaddresscheck07:dim formpost08:dim passedtest09:dim matches00:dim num111:dim num212:dim num313:dim num414:15:if request.form.item("submitbutton") = "enter" then16: formpost = true17:else18: formpost = false19:end if20:21:if formpost then22: ipaddress = request.form.item("ipaddress")23: set respacecheck = new regexp24: respacecheck.pattern = "^(\d+)\.(\d+)\.(\d+)\.(\d+)$"25:26: if respacecheck.test(ipaddress) then27:  set matches = respacecheck.execute(ipaddress)28:  num1 = matches.item(0).submatches.item(0)29:  num2 = matches.item(0).submatches.item(1)30:  num3 = matches.item(0).submatches.item(2)31:  num4 = matches.item(0).submatches.item(3)32:  if num1 <= 255 and num1 >= 0 _33:    and num2 <= 255 and num2 >= 0 _34:    and num3 <= 255 and num3 >= 0 _35:    and num4 <= 255 and num4 >= 0 then36:   passedtest = true37:  end if38: end if39:end if40:%>41:<html>42:<head>43: <title>match example</title>44:</head>45:<body>46: <center>47: <%if formpost then48:  if passedtest then%>49:   <b>you entered <%=ipaddress%> as a valid ip address.</b>50:  <%else%>51:   <b><font color="red">you must enter a valid ip address.</font></b>52:  <%end if%>53:  <br />54: <%end if%>55: <form name="testform" id="testform" method="post" action="test2.asp">56: enter an ip address: <input type="text" name="ipaddress" id="ipaddress"     value="" /><br />57: <input type="submit" name="submitbutton" id="submitbutton" value="enter" />58: </form>59: </center>60:</body>61:</html>

与javascript各别, vbscript没有match吩咐。以是用正则表白式的execute本领来处置配合尝试。execute归来截止中包括四个子数组,对应于每节数字的检验和测定截止。而后检验和测定该节数字能否在0 - 255范畴内。检验和测定精确,就获得精确的ip地方。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.