2、Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。 如果找到了匹配的模式,Test方法返回True;否则返回False。下面的代码说明了Test 方法的用法。
2、Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。 如果找到了匹配的模式,Test方法返回True;否则返回False。下面的代码说明了Test 方法的用法。
<% Function RegExpTest(patrn, strng) Dim regEx, retVal ' 建立变量 。 Set regEx = New RegExp ' 建立正则表达式 。 regEx.Pattern = patrn ' 设置模式 。 regEx.IgnoreCase = False ' 设置是否区分大小写 。 retVal = regEx.Test(strng) ' 执行搜索测试 。飞飞Asp技术乐园 If retVal Then RegExpTest = "找到一个或多个匹配 。" Else RegExpTest = "未找到匹配 。" End If End Function Response.write RegExpTest("is.", "IS1 is2 IS3 is4") %> 3、Execute 方法 对指定的字符串执行正则表达式搜索。正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。 Execute 方法返回一个 Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。 三、JavaScript中正则表达式的使用 在JavaScript 1.2版以后,JavaScript也支持正则表达式。 1、replace replace在一个字符串中通过正则表达式查找替换相应的内容。replace并不改变原来的字符串,只是重新生成了一个新的字符串。如果需要执行全局查找或忽略大小写,那么在正则表达式的最后添加g和i。 例:
<SCRIPT> re = /apples/gi; str = "Apples are round, and apples are juicy."; newstr=str.replace(re, "oranges"); document.write(newstr) </SCRIPT>
结果是:"oranges are round, and oranges are juicy." 例:
<SCRIPT> str = "Twas the night before Xmas..."; newstr=str.replace(/xmas/i, "Christmas"); document.write(newstr) </SCRIPT>
结果是:"Twas the night before Christmas..." 例:
<SCRIPT> re = /(\w+)\s(\w+)/;str = "John Smith"; newstr = str.replace(re, "$2, $1"); document.write(newstr) </SCRIPT>
结果是:"Smith, John". 2、search search通过正则表达式查找相应的字符串,只是判断有无匹配的字符串。如果查找成功,search返回匹配串的位置,否则返回-1。 search(regexp)
<SCRIPT> function testinput(re, str){ if (str.search(re) != -1) midstring = " contains "; else midstring = " does not contain "; document.write (str + midstring + re.source); } testinput(/^[1-9]/i,"123") </SCRIPT>
3、match match方法执行全局查找,查找结果存放在一个数组里。 例一:
<SCRIPT> str = "For more information, see Chapter 3.4.5.1"; re = /(chapter \d+(\.\d)*)/i; found = str.match(re); document.write(found); </SCRIPT>
显示结果:Chapter 3.4.5.1,Chapter 3.4.5.1,.1 例二:
<SCRIPT> str = "abcDdcba"; newArray = str.match(/d/gi); document.write(newArray); </SCRIPT>
显示结果D, d. 四、示例 1 、判断数字的正确性
<%@ Language=VBScript %> <script language="javascript" runat="server"> function isNumeric(strNumber) { return (strNumber.search(/^(-|\+)?\d+(\.\d+)?$/) != -1); } function isUnsignedNumeric(strNumber) { return (strNumber.search(/^\d+(\.\d+)?$/) != -1); } function isInteger(strInteger) { return (strInteger.search(/^(-|\+)?\d+$/) != -1); } function isUnsignedInteger(strInteger) { return (strInteger.search(/^\d+$/) != -1); } </script> <HTML> <BODY> <b>判断数字的正确性</b> <% Dim strTemp strTemp = CStr(Request.Form("inputstring")) If strTemp = "" Then strTemp = "0" %> <TABLE BORDER="1" CELLPADDING="4" CELLSPACING="2"> <TR> <TD ALIGN="right"><B>原始字符串</B></TD> <TD><%= strTemp %></TD> </TR> <TR> <TD ALIGN="right"><B>数字</B></TD> <TD><%=isNumeric(strTemp)%></TD> </TR> <TR> <TD ALIGN="right"><B>非负数字</B></TD> <TD><%=isUnsignedNumeric(strTemp)%></TD> </TR> <TR> <TD ALIGN="right"><B>整数</B></TD> <TD><%=isInteger(strTemp)%></TD> </TR> <TR> <TD ALIGN="right"><B>非负整数()</B></TD> <TD><%=isUnsignedInteger(strTemp)%></TD> </TR> </TABLE> <FORM ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>" METHOD="post"> 请输入一个数字:<BR> <INPUT TYPE="text" NAME="inputstring" SIZE="50"></INPUT><BR> <INPUT TYPE="submit" Value="提交"></INPUT><BR> </FORM> </BODY> </HTML>
2、判断Email地址的正确性
<% Function isemail(strng) isemail = false Dim regEx, Match Set regEx = New RegExp regEx.Pattern = "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$" regEx.IgnoreCase = True Set Match = regEx.Execute(strng) if match.count then isemail= true End Function %>
五、总结 上面我们介绍了正则表达式的基本概念,以及在VBScript和JavaScript中如何使用正则表达式,同时,通过一些实例让大家有了感性的认识。正则表达式的应用范围很广,能为大家解决很多实际中的问题。飞!飞Asp技术乐园本文介绍的内容只是一些初步的知识,还有很多语法规则需要大家继续学习,在实践中发现问题,解决问题。飞飞Asp技术,乐园
|