大家可以瀏覽我新的博客 dyin.cn
2006年6月15日 #
今天與大家分享的資源如下:
==================================================================================
JSP動態(tài)網(wǎng)頁制作
PHP動態(tài)網(wǎng)頁制作
ASP動態(tài)網(wǎng)頁制作
Perl動態(tài)網(wǎng)頁制作
winxp優(yōu)化大全
JSP程序設(shè)計
以上皆是視頻教程
如果你需要請你留下email我將會在晚上統(tǒng)一把種子發(fā)送到你的郵箱里,如果需要請抓緊,3天后將不再提供!
?
要考慮一個真正意義的全球資源,Web瀏覽器的內(nèi)容對每個接收到的用戶來說都是易讀的,現(xiàn)在大多數(shù)的全球資源的網(wǎng)站都是英文的.當然,現(xiàn)在也在發(fā)生變化,有的網(wǎng)站為一些特定的國家定制一些非英文版本,比如,說英文的通過http://www.ibm.com/en/index.html來訪問,說中文的通過http://www.imb.com/cn/index.html來訪問,這些很多都是靜態(tài)的文本.怎么構(gòu)件一個動態(tài)生成的國際化內(nèi)容的網(wǎng)站就不是一個簡單的問題了. <% 運行結(jié)果: ?Hola Mundo! <% 支持多國語言的Hello World
?? //中文 ?? //韓國語
國際化又稱Il8N,因為英文國家的國家化是Internationalization,它以I開始,以N結(jié)束,共18個字母.本地化又稱L18N,即是Localization.國際化的問題主要包含以下的一些內(nèi)容:
.日期,時間
.數(shù)字
.貨幣
.其它的一些特殊字符
也就是說不同的Locale,顯示日期,時間格式是不一樣的.當然,不同的語言有自己不同的字符集.
HTML中的字符實體
HTML中的字符實體和XML的語言保持一致.它定義了用特定的字符序列顯示單字符的功能,這種字符序列稱為字符實體,它以" &"開頭,以";"結(jié)束.例如: © 表示字符"?";
看一例子顯示西班牙語的" Hello World":
<%@page contentType="text/html;charset=ISO-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "
?? response.setHeader("Content-Language","es");
?? out.println("<html><head><title>En Español</title></head>");
?? out.println("<body>");
?? out.println("<h3>En espa%ntilde;ol</h3>");
?? out.println("¡Hola Mundo!");
?? out.println("</body></html>");
%>En espa%ntilde;ol
在HTML字符實體表示中,ñ代表了" ? "字符,使用response.setHeader("Content-Language","es");來設(shè)置HTML顯示時要使用的語言.
Unicode
Unicode字符標準是一個字符編碼系統(tǒng),它支持互相轉(zhuǎn)換,處理和顯示現(xiàn)在世界上不同語言的文本.在Java語言中,字符,字符串和標始符在內(nèi)部使用16位的Unicode 2.0字符集表示.Unicode使用 " \uxxxx" 來表示一個字符,前256個Unicode字符和ISO-8859-1標準(Latin-1)的前256個字符一致.在Unicode世界中, "? ?? " 用 " \u00f1 " 表示.看怎么用Unicode來編寫西班牙語的Hello World:
<%@page contentType="text/html;charset=ISO-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "
?? response.setHeader("Content-Language","es");
?? out.println("<html><head><title>En Espa\u00f1ol</title></head>");
?? out.println("<body>");
?? out.println("<h3>En espa\u00f1ol</h3>");
?? out.println("\u00f1Hola Mundo!");
?? out.println("</body></html>");
%>
用語選擇語言的頁面:
語言處理頁面代碼:
<%@page contentType="text/plain;charset=UTF-8"
import="java.io.*,java.text.*,java.util.*,javax.servlet.jsp.*" %>
<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
??????? <title>JSP Page</title>
??? </head>
??? <body>
<%!
?? Locale locale;
?? DateFormat format;
?? JspWriter writer;
%>
<%!
?? //英語
void processEnglish()throws Exception
{
??? locale=new Locale("en","US");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in english");
??? writer.println("<br>");
??? writer.println("HelloWorld");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
void processChinese()throws Exception
{
??? locale=new Locale("zh","");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in Chinese");
??? writer.println("<br>");
??? writer.println("\u4f60\u597d\u4e16\u754c");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
void processKorean()throws Exception
{
??? locale=new Locale("ko","");
??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
??? writer.println("in Korean");
??? writer.println("<br>");
??? writer.println("\uc548\ud558\uc138\uacc4");
??? writer.println(format.format(new Date()));
??? writer.flush();
}
//.........................其他的語言省略
%>
<%
??? //獲得請求的語種
???? String language=(String)request.getParameter("language");
???? int lan=Integer.parseInt(language);??
%>
<%
?? writer=out;
?? switch(lan)
?? {
?????? case 1:processEnglish();break;
?????? case 2:processChinese();break;
?????? case 3:processKorean();break;
?????? //case 4:processRussian();break;
?????? //case 5:processSpanish();break;
????? // case 6:processJapanese();break;
?? }
%>
??? </body>
</html>
處理的思路很簡單,首先獲得請求的語種,然后根據(jù)不同的語言來做不同的處理.
在JSP開發(fā)中我們常常會碰到以下的一些問題,其實都很有代表性. <html> ??? <h1>Login Checking Page</h1>
在不同的頁面或者用戶之間共享數(shù)據(jù)
在JSP中共享數(shù)據(jù),大體上可以分為兩種情況,第一種是在同一個用戶的不同也面之間共享數(shù)據(jù),另一種是在不同用戶之間共享數(shù)據(jù).
對于同一個用戶的會話,要想在不同的頁面之間共享數(shù)據(jù),可以有以下幾種選擇:
.把數(shù)據(jù)保存在Session中(最常見的方法)
.通過Cookie
.通過隱含表單提交到下一個頁面
.通過ServletContext對象
.通過Application對象
.通過文件系統(tǒng)或者數(shù)據(jù)庫
要在不同的用戶之間共享數(shù)據(jù),通常的方法是:
.通過ServletContext對象
.通過Application對象
.通過文件系統(tǒng)或者數(shù)據(jù)庫
可見,對于不同用戶之間共享數(shù)據(jù)的實現(xiàn)方法在同一個用戶的不同也面之間也能實現(xiàn)數(shù)據(jù)共享.
a.在同一個用戶的不同也面之間共享數(shù)據(jù)
1.使用session共享數(shù)據(jù)
用戶在瀏覽網(wǎng)頁時,由于HTTP協(xié)議是一種無狀態(tài)協(xié)議,往往在不同的頁面之間存在數(shù)據(jù)交換的問題,這就需要在這些不同的頁面之間共享數(shù)據(jù).在編程實現(xiàn)中我們常看到的方法是把共享數(shù)據(jù)保存在session中.這些共享數(shù)據(jù)可以是字符串或者與Java的原始數(shù)據(jù)類型相關(guān)的對象,也可以是一個Java對象.
exampl: 用戶登錄時,如果驗證成功,就把信息保存到一個userSession的類中,在其他的頁面可以讀取這個值.
userSession.java
package dory;
import java.util.Date;
/**
?*
?* @author Dory Doo
?*/
public class userSession {
??? private boolean isLogin=false;
??? private String userId;
??? private Date lastLoginTime;
??? private int logCount;
??? /** Creates a new instance of userSession */
??? public userSession() {
??? }
??? public void setIsLogin(boolean l)
??? {
??????? this.isLogin=l;
??? }
??? public void setUserId(String userId)
??? {
??????? this.userId=userId;
??? }
??? public void setLastLoginTime(Date l)
??? {
??????? this.lastLoginTime=l;
??? }
??? public void setLogCount(int logCount)
??? {
??????? this.logCount=logCount;
??? }
??? public boolean isLogin()
??? {
??????? return this.isLogin;
??? }
??? public String getUserId()
??? {
??????? return this.userId;
??? }
??? public Date getLastLoginTime()
??? {
??????? return this.lastLoginTime;
??? }
??? public int getLogCount()
??? {
??????? return this.logCount;
??? }
}
當然這個就比較簡單的了,要的是整個思路.我們怎么來使用這個類,我們需要一個驗證登陸的頁login.jsp
<%@page contentType="text/html;charset=gb2312" language="java"
?import="java.sql.*,dory.*" errorPage=""%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
??????? <title>JSP Page</title>
??? </head>
??? <body>
<%
?? String name=request.getParameter("name");
?? String password=request.getParameter("password");
?? //Connection the Database,loading
?? //int logCount=resultSet.getInt("count");
?? //java.util.Date lastLoginTime=resultSet.getDate("LastLoginTime");
?? //這里簡單設(shè)置logCount和lastLoginTime的值
?? UserSession user=new UserSeesion();
?? user.setUserId(name);
?? user.setIsLogin(true);
?? user.setLastLoginTime(new java.util.Date());
?? user.setLogCount(10);
?? session.setAttribute("userSession",user)
?? response.sendRedirect("welcome.jsp");
%>
??? </body>
</html>
整個登陸頁面的過程是這樣的:
(1)獲得用戶的登陸信息
(2)連接數(shù)據(jù)庫進行權(quán)限驗證
(3)如果通過驗證,那么讀取用戶的注冊信息
(4)把用戶的注冊信息保存到一個userSession對象中
(5)把userSession對象保存到Session內(nèi)建對象中
(6)把視圖派發(fā)到下一個顯示頁面
注意:session.setAttribute("userSession",user)把userSession的一個對象設(shè)置到Session中,Session只能保存對象,不能保存原始的數(shù)據(jù)類型,比如:
session.setAttribute("count",10)
是非法的語句,如果要把值為10的整數(shù)保存到Session中,需要使用以下的方法:
session.setAttribute("count",new Integer(10));
然后在另一個頁面使用
(Integer)session.getAttribute("count");
把這個整數(shù)讀出來.
我們用如下方法在另一個頁面中把userSesseion對象讀取出來:
<%@page contentType="text/html;charset=gb2312" language="java"
?import="java.sql.*,dory.*" errorPage=""%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
??????? <title>JSP Page</title>
??? </head>
??? <body>??
<%
?? UserSession user=(UserSession)session.getAttribute("userSession");
?? try
?? {
?????? if(user.isLogin())
?????? {
?????????? out.print("welcome,your login id is:"+user.getUserId());
?????????? out.print("your last login time is:"+user.getLastLoginTime());
?????????? out.print("now you are the:"+user.getLogCount()+"times logging this website");
?????? }
?????? else
?????? {
?????????? response.sendRedirect("login.html");
?????? }
?? }
?? catch(Exception e)
?? {
?????? response.sendRedirect("login.html");
?? }
%>
??? </body>
</html>
可以看出,通過UserSession user=(UserSession)session.getAttribute("userSession");代碼來讀取在前一個頁面中設(shè)置的對象,然后再從這個對象讀取一些相關(guān)值.當然我們也可以用JavaBean的形式來讀取.
2.使用隱含菜單
這種方式通過隱含菜單的形式把數(shù)據(jù)傳遞到下一個頁面,它有兩個局限性:
.只能在相鄰的兩個頁面之間傳遞數(shù)據(jù)
.客戶端可以使用查看網(wǎng)頁源代碼的方式獲得表單中的數(shù)據(jù),安全性不好
它的實現(xiàn)很簡單:
<form action="target.jsp">
<input type="hidden" name="test" value="abc">
<input type="hidden" name="test2" value="def">
</form>
在另外一個頁面中,通過這樣來獲得數(shù)據(jù):
String test=request.getParameter("test");
String test2=request.getParameter("test2");
3.使用Cookie
和Session不同,Cookie是放在客戶端的,由于客戶考慮到安全應(yīng)素可能會禁用cookie,這樣在使用cookie就會遇到麻煩了.
b.在不同的用戶之間共享數(shù)據(jù)
在不同的在不同的用戶之間共享數(shù)據(jù)最常見的方法是使用ServletContext和application對象,通過在一個用戶那里設(shè)置屬性在另一個用戶那里獲得這個屬性.
1.使用ServletContext
在JSP頁面中可以通過getServletContext()方法獲得ServletContext對象.在這種情況下不同的用戶通過它來工享數(shù)據(jù),看下面的實現(xiàn)代碼:
<%@page contentType="text/html;charset=gb2312" language="java"
import="java.sql.*,javax.servlet.*,javax.servlet.http.*,dory.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "<%
?? request.setCharacterEncoding("gb2312");
%>
<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
??????? <title>JSP Page</title>
??? </head>
??? <body>
??? a simple chatting room
??? <br><hr><font color="red">
<%
?? String content=(String)getServletContext().getAttribute(new String("chatTopic_1"));
?? out.print(content);
?? getServletContext().setAttribute("chatTopic_1",content+(String)request.getParameter("content")
?? +"<br>");
%>
??? </font>
??? <hr>
??? <form accept="Servelt Context_chat.jsp">
??????? <input type="text" name="content">
??????? <input type="submit" value="speak">
??? </form>
??? </body>
</html>
2.application對象
application對象對應(yīng)于每個web應(yīng)用來說只有一個,它使用和ServletContext差不多.如下:
<%@page contentType="text/html;charset=gb2312" language="java"
import="java.sql.*,javax.servlet.*,javax.servlet.http.*,dory.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
?? "<%
?? request.setCharacterEncoding("gb2312");
%>
<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
??????? <title>JSP Page</title>
??? </head>
??? <body>
??? a simple chatting room
??? <br><hr><font color="red">
<%
?? String content=(String)application.getAttribute(new String("chatTopic_1"));
?? out.print(content);
?? application.setAttribute("chatTopic_1",content+(String)request.getParameter("content")
?? +"<br>");
%>
??? </font>
??? <hr>
??? <form accept="Servelt Context_chat.jsp">
??????? <input type="text" name="content">
??????? <input type="submit" value="speak">
??? </form>
??? </body>
</html>
可以得到ServletContext和application的實現(xiàn)機制基本上一致.
=====================================================================================
國內(nèi)外JSP/Java/Servlet技術(shù)著名網(wǎng)站
http://www-900.ibm.com/developerWorks/cn
http://java.sun.com
http://www.jchq.net
http://jquest.webjump.com/
http://www.chinaasp.com/ (國內(nèi))
http://www.cnjsp.com/? (國內(nèi))
http://www.javaunion.org/ (國內(nèi))
http://www.jspchina.com/ (國內(nèi))
國內(nèi)外介紹JSP/Servlet應(yīng)用程序服務(wù)器的網(wǎng)站
?http://www.allaire.com/
?http://jakarta.apache.org/
?http://java.apache.org/
?http://www.atg.com/
?http://www.bea.com/
?http://www.beasys.com/
?http://www.bluestone.com/
?http://caucho.com/
?http://easythings.iwarp.com/
?http://www.fefionsoftware.com
?http://www.gemstone.com/
?http://www.software.ibm.com/
?http://www.inprise.com/
?http://sun.com/software/
?http://www.tagtraum.com/
?http://www.enhydra.com/
?http://www.mortbay.com/
?http://www.novocode.com/
?http://www.oracle.com/
?http://www.orionserver.com/
?http://www.paralogic.com/
?http://www.pramati.com/
?http://www.secant.com/
?http://www.servertec.com/
?http://www.silverstream.com/
?http://www.siteforum.com/
?http://www.unify.com/
?http://www.vqsoft.com/
?http://www.w3.org/
國內(nèi)外介紹 JSP/Java/Servlet開發(fā)工具的網(wǎng)站
?http://www.adobe.com/
?http://www.bea.com/
?http://www.software.ibm.com/
?http://www.inprise.com/
?http://www.macromedia.com/
?http://www.netbeans.org/
?http://www.netobjects.com/
?http://www.oracle.com/
?http://www.sun.com/
?http://www.eclipse.com/
FAQ網(wǎng)站
?http://www.jguru.com/
?http://java.sun.com/products/jsp/faq.html
?http://www.esperanto.org.nz/
?http://www.jchq.net/
繁體資源
http://www.javaworld.com.tw/jute或http://www.jsptw.com/jute
http://www.jsp.mlc.edu.tw
?? 正則表達式
?.正則表達式及其作用
?.RegExp對象
?.String對象中與正則表達式有關(guān)的方法
?.正則表達式的語法參考
?.實用程序舉例
?什么是正則表達式?
?.文件路徑通配符
?"?"通配符匹配文件名中的單個字符,而"'"通配符匹配零個或多個字符。data?.dat就是一中文
?本模式,它能匹配data1.dat,data2.dat,datax.dat,dataN.dat等文件名。data*.dat是另一種文
?本模式,它匹配data.dat,data1.dat,data2.dat,data12.dat,datax.dat等文件名。
?
?.正則表達式
?是由英文詞語regular expression翻譯過來的,英文比中文更能實現(xiàn)其含義,就是符合某種規(guī)則
?的表達式。可以將正則表達式理解為一種對文件進行模糊匹配的語言,它用一些特殊的符號(稱
?為元字符)來代表某種特征(例如,全都是數(shù)字)的一組字符以及指定匹配的次數(shù),含有元字符
?的文本不再表示某一具體的文本內(nèi)容,而是形成了一種文本模式,它可以匹配符合這種模式的所
?有文本串。
?
?元字符與子匹配
?.元字符
?如果一個圖書的編號格式是:要么是5個數(shù)字字符,例如,10101;要么是5個數(shù)字后加上一個連字號
?(-),再加上4個數(shù)字組成的10個字符,例如,11111-1234。那么,要在一個大的文本串中查找這
?兩種格式的圖書編號時,就可以用\d{5}(-\d{4})?做為匹配模式。
?如果要讓abc?中的bc同時受到?的作用,必須使用圓括號將他們括起來,使它們成為一個緊密結(jié)合
?的組合項,這樣后面的?就表示圓括號中的內(nèi)容可有可無,例如,a(bc)?能匹配a和abc。
?.字匹配
?圓口號所括起來的部分為一個子匹配(也叫子表達式),除了可以得到整個正則表達式的匹配
?結(jié)果外,還可以單獨得到每個子表達式部分所匹配的結(jié)果。
?多個子表達式所匹配的原始內(nèi)容按照它們正則表達式模式中從左到右出現(xiàn)的順序存儲在緩沖區(qū)中
?,這種過程稱為捕獲。圓括號中的子匹配所捕獲的內(nèi)容可在整個表達式中位于這個括號之后的
?地方被反引用,第一括號(即第一個子匹配)捕獲的內(nèi)容用\1表示,第二個圓括號(即第二個子
?匹配)捕獲的內(nèi)容\2表示,依次類推。例如,要匹配2個相同的連續(xù)字符的正則表達式為(\d)\1.
?要匹配連續(xù)5個相同的數(shù)字字符的正則表達式為(\d)\1{4}.要匹配1221.3553.6776等數(shù)字。可以
?使用正則表達式為(\d)(\d)\2\1。
? 正則表達式的作用
?.測試字符串是否匹配某個模式,從而實現(xiàn)數(shù)據(jù)格式的有效性驗證。
?.將一段文本中滿足某一正則表達式模式的文本內(nèi)容替換為別的內(nèi)容或刪除(即替換為空字符串)
? 例如,將一大段文本中的所有的19xx年的內(nèi)容替換為20xx年,其中xx部分是兩個任意的數(shù)字,
? 不會被替換,但不能簡單地用20替換19,否則1919就被替換為2020。
?.在一段文本中搜索具有某一類型特征的文本內(nèi)容。精確搜索和正則表達式的模式搜索最大的區(qū)
? 別就是:精確搜索是搜索一個具體的文本,而模式搜索是模式搜索具有某一類型特征的文本。
?
? RegExp對象
?JavaScript中提供了一個名為RegExp的對象來完成有關(guān)正則表達式的操作和功能,每一條正則
?表達式模式對應(yīng)一個RegExp對象實例。
?創(chuàng)建RegExp對象實例
?(1)使用RegExp對象的顯示構(gòu)造函數(shù),語法為:new RegExp("pattern"[,"flags"]);
?(2)使用RegExp對象的隱式構(gòu)造函數(shù),采用純粹的文本格式:/pattern/[flags]
?
?flags標志字符:
???? -g 用做全局標志
???? -i 用做忽略大小寫標志
???? -m 用做多行標志
???? 如果沒有設(shè)置這個標志,那么元字符"^"只與整個被搜索字符串的開始位置相匹配,而元字符
???? "$"只與整個被搜索字符串的結(jié)束位置相匹配。如果設(shè)置了這個標志,那么"^"還可以與被
???? 搜索字符串中的"\n"或"\r"之后的位置相匹配。
? 注意:
? 當使用構(gòu)造函數(shù)的方式創(chuàng)建RegExp實例對象的時候,應(yīng)將原始的正則表達式模式文本中的每個
? "\"都使用"\\"來替換,例如,下面的語句等價:
?? var re=new RegExp("\\d{5}");
?? var re=^d{5}/
?RegExp對象-屬性
?.所有RegExp對象實例共享靜態(tài)屬性
?.單個對象實例的屬性
?靜態(tài)屬性:
?.index
?.input
?.lastIndex
?.lastMatch
?.lastParen
?.lastContext
?.leftContext
?.rightContext
?.$1...$9
?對象實例屬性:
?.global
?.ignoreCase
?.multiline
?.source
?RegExp對象-方法
?.test方法
?語法格式為:test(str)。檢查一個字符串中是否存在創(chuàng)建RegExp對象實例所指定的正則表達式模式
?.exec方法
?語法格式為:exec(str)。使用創(chuàng)建RegExp對象實例時所指定的正則表達式模式對一個字符串執(zhí)行
?搜索,并返回一個包含搜索結(jié)果的數(shù)組。
?.compile方法
?語法格式為:compile("pattern"[,"flags"])。更換RegExp對象實例所使用的正則表達式模式,并
?將新的正則表達式模式編譯為內(nèi)部格式,從而使以后的匹配過程執(zhí)行更快。
?RegExp對象-綜合舉例
?code:
<script language="javascript">
??? var strSrc="xxa1b01c001yya2b02c002zz";
??? var re="/a(\d)b(\d{2})c(\d{3})/gi";
??? var arr,count=0;
??? while((arr = re.exec(strSrc))!=null)
??? {
?????? displayResult();
??? }
??? function displayResult()
??? {
????? document.write(<p>這是用正則表達式/"+re.source+"/gi對字符串<br>\""
???????????????? +RegExp.input+ "\"進行第" +(++count)+ "次搜索的結(jié)果:<br>");
????? document.write("RegExp.index為"+RegExp.index+"<br>");
????? document.write("RegExp.lastindex為"+RegExp.lastindex+"<br>");
????? document.write("RegExp.lastMatch為"+RegExp.lastMatch+"<br>");
????? document.write("RegExp.lastParen為"+RegExp.lastParen+"<br>");
????? document.write("RegExp.lastContext為"+RegExp.lastContext+"<br>");
????? document.write("RegExp.$1為"+RegExp.$1+"<br>");
????? document.write("RegExp.$1為"+RegExp.$2+"<br>");
????? document.write("RegExp.$1為"+RegExp.$3+"<br>");
????? document.write("RegExp.$1為"+RegExp.$4+"<br>");
????? document.write("arr.index為"+arr.index+"<br>");
????? document.write("arr.input為"+arr.input+"<br>");
????? document.write("arr.lastindex為"+arr.lastindex+"<br>");
????? document.write("返回的元素個數(shù)為"+arr.length+"<br>");
????? document.write("返回數(shù)組的類容為[");
????? for(var i=0;i<arr.length;i++)
????? {
???????? if(arr.length-1)
??????????? document.write("\""+arr[i]+"\",");
???????? else
??????????? document.write("\""+arr[i]+"\"]</p>");
????? }
?????
??? }
?</script>
?
?String對象中與正則表達式有關(guān)的方法
?.match方法
?語法格式為:match(Exp)。與RegExp對象的exec方法類似,它使用正則表達式模式對字符串執(zhí)行
?搜索,并返回一個包含搜索結(jié)果的數(shù)組。
?<script language="javascript">
?? var strSrc="xxa1b01c001yya2b02c002zz";
?? var re=/a(\d)b(\d(2))c(\d{3})/gi;
?? var arr;
?? arr=strSrc.match(re);
?? for(var i=0;i<arr.length;i++)
?? {
????? if(i<arr.length-1)
???????? document.write("[\""+arr[i]+"\",");
????? else
???????? document.write("\""+arr[i]+"\"]");
?? }
?</script>
?
?.search方法
?語法格式為:serach(rgExp)。返回使用正則表達式搜索時,第一個匹配的字符串在整個被搜索
?的字符串中的位置。
?.replace方法
?語法格式為: replace(rgExp,replaceText)。使用正則表達式模式對字符串執(zhí)行搜索,并對搜索
?到的內(nèi)容用指定的字符串替換,返回值包含替換后的內(nèi)容的字符串對象。