三、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
%>

解决方案 »

  1.   

    更多信息可以到这里找到:
    http://www.aspsky.net/article/index.asp?classid=2&Nclassid=27
      

  2.   

    是不是这个正则表达式就像CSS一样,是某个组织发明的东西,而不是专门属于某个软件、某个应用,至于你的程序应用是否能用正则表达式,要看他是否支持,就象浏览器是否支持CSS一样?所以,正则表达式的语法在每个地方应该是一样的?只是调用的方法不同,如vbscript中是test而在javascript中就是search。
      

  3.   

    ASP中常用的正则表达式是Javascript(Jscript)和VBScript等脚本语言中的一个组成部分,VBS以前本来是不支持正则表达式的,后来就支持了。所以并不像CSS一样依赖于浏览器的支持(当然浏览器总得支持Js和VBS对吧?),也许可以说,正则表达式可以看成脚本语言的一种“类”,在使用时相当于一个对象类型,这个对象有自己的属性和方法。
    在网页制作中,正则表达式的一个典型实例就是论坛的UBB标签,使用正则表达式可以方便的实现UBB格式。其实你去这里http://www.aspsky.net/article/index.asp?classid=2&Nclassid=27看看吧,很详细,我只是知道一点皮毛而已
      

  4.   

    EDITPLUS的高级搜索就可以用正则试,其他编辑器也基本都支持。