Posted: 2004/11月/25 12:59下午 | IP記錄
|
|
|
使用字符串(字符串對像)
JScript中內建的最有用的對象之一是字符串對象,這個對象的方法可以用來以多種方式安排和處理字符串。例如,你可以用字符 串方法以HTML格式提供一個字符串,你可以用方法來完成字符串的比較、查找、選取字符串等操作。
你通過new語句來建立一個新的字符串對象,來看下面的例子:
<%
mystring=new String(「I am a string」);
%>
<%=mystring%>
在此例中,建立了一個名為mystring的字符串對象,它含有字符串「I am a String」。當這個對象被輸出時,這段文本就會被顯示出來。
然而一般情況你不需要明確地建立一個字符串對象,你可以用文字串來建立一個字符串對象。例如,就像下面的腳本那樣:
<%
mystring=「I am a string」;
%>
<%=mystring%>
在此例中,文字串「I am a String」 建立了一個字符串對象。在大部分情況下,這意味著你不必明確地建立一個字符串對象,你可以對這個文字串調用字符串對象的各種方法 。
注意
什麼時候你必須建立一個字符串對像?如果你想讓一些字符串具有某些特定的屬性而另一些字符串沒有,這時就必須明確地建立單個的具 有這些屬性的字符串對象。這是因為所有缺省建立的字符串都共享一個共同的全局的字符串對象。
將HTML加入字符串
字符串對象的許多方法允許你在字符串中加入各種類型的HTML格式,在下面的例子中,三個字符串都以黑體輸出:
<%
mystring=「I am bold!」;
mystring2=「I am also bold!」.bold();
%>
<%=mystring.bold()%>
<%=mystring2%>
<%=「I too am bold!」.bold()%>
Bold()方法代替了字符串兩邊的HTML標識符〈B〉和〈/B〉,你可以這樣做一下來實現同一效果,例如,當在瀏覽器上顯示 下面腳本中的兩個字符串時將是一樣的:
<%=「I am bold!」.bold()%>
<%=「<B>I am bold!</B>」%>
如果你選擇網絡瀏覽器上的View Source命令時,你將會發現輸出的恰好是同一字符串Bold()方法,只不過使HTML格式的字符串更方便些。
Bold()方法並不是唯一的將HTML標識符附加給字符串的方法,考慮下面的腳本中所有使用的方法(圖9.3為網絡服務器上顯 示的結果):
<BR> <%=「I am big!」.big()%>
<BR> <%=「I am bold!」.bold()%>
<BR> <%=「Blink, blink」.blink()%>
<BR> <%=「I am formatted with a fixed-width font」.fixed()%>
<BR> <%=「I am in italics」.italics()%>
<BR> <%=「I am small」.small()%>
<BR> <%=「I have a line through me」.strike()%>
<BR> <%=「I am in subscript」.sub()%>
<BR> <%=「I am in superscript」.sup()%>
<BR> <%=「I am the color red」.fontcolor(「red」)%>
<BR> <%=「I am big!」.fontsize(4)%>
圖9.3 使用字符串方法的顯示結果
你也可使用字符串方法來建立超連接,例如,下面的腳本建立一個與各種Internet結點相連的超連接的列表:
<%= 「Top Of Page」.anchor(「top」)%>
<H1> My Favorite Links </H1>
<BR> <%=「Magic」.link(「http://www.magicw3.com」)%>
<BR> <%=「Microsoft」.link(「http://www.microsoft.com」)%>
<BR> <%=「Collegescape」.link(「http://www.collegescape.com」)%>
<BR> <%=「CityAuction」.link(「http://www.cityauction.com」)%>
<P>
Back to the top of the page:
<%=「top」.link(「#top」)%>
再一次申明,你需要明確地加入HTML格式,但是如果你用這些字符串方法代替你的腳本可能會更有可讀性(及變得稍短些)。
分割和搜索子串
字符串對像中包含兩個在字符串中搜索子串的方法,indexof()方法從左至右搜索子串;lastIndexof()方法從右 至左搜索字符串,下面的例子使用了這兩個方法及它們返回的值:
<%=「The box contained three boxes」.indexOf(「box」)%>
4
<%=「The box contained three boxes」.lastIndexOf(「box」)%>
24
<%=「The box contained three boxes」.indexOf(「box」,6)%>
24
<%=「The box contained three boxes」.lastIndexOf(「box」,22)%>
4
在這些例子中,在字符串「The box contained three boxes」中搜索特定的子串,indexof()方法從左開始搜索這個字符串。lastIndexof()方法從右開始搜索這 個串。當沒有匹配時,每種方法都返回-1。
每個方法的搜索都是區分大小寫的,因此在上述這些例子中如果搜索子串「Box」將返回無匹配。要進行不區分大小寫的搜索,你需要 把要比較的字符串都轉換成同一種大小寫形式。(使用下一節將要討論的兩個方法之一)
注意每種方法都從字符串的左邊開始計數,從零開始,在第二句中,返回值為24,因為字符串「box」是「boxes」中的一部分 。
就如從這些例子中可看到的那樣,你可以指定一個整數來從字符串的某一個字符處開始搜索。在第三個例子中,子串從第一個詞box中 的字母x處開始進行搜索。在第四個例子中,子串從單詞three中的第二個e處開始進行搜索。
如果你想從一個字符串中獲得單個字符,你可以使用字符串對像中的charAt()方法,它返回字符串中特定位置處的字符。下面是 一些腳本例子及它們返回的值:
<%=「The box contained three boxes」.charAt(4)%>
b
<%=「The box contained three boxes」.charAt(10)%>
n
再一次注意字符串中第一個字符的索引是0。字符串中第四個位置的字符是字母b,如果你指定的字符索引號大於字符串的長度,並不會 產生錯誤,但什麼也不會返回。
如果你要從一個字符串中分割出一個子串,你可以使用substring()方法。這個方法需要兩個參數:第一個指定從哪個位置開 始分割子串,第二個參數指明到哪裡結束。下面是一些例子。
<%=「The box contained three boxes」.substring(4,7)%>
box
<%=「The box contained three boxes」.substring(24,29)%>
boxes
實際上,你指定子串開始和結束位置的順序是不重要的,對於負值,這兩個參數中較小值被自動當作子串的開始位置,而較大的值被當作 結束位置。
當使用這些方法時,知道一個字符串的長度是很有必要的。你可以使用字符串對象的length屬性來獲得這個值,下面是個例子:
<%=「The box contained three boxes」.length%>
29
<%=「box」.length%>
3
<%=「」.length%>
0
改變字符串的大小寫
最後,字符串對像中包括兩個方法可以讓你改變字符串的大小寫狀態。toUpperCase()方法將一個字符串全部變為大寫,而 toLowerCase()則將字符串變為小寫。
<%=「The box contained three boxes」.toUpperCase()%>
THE BOX CONTAINED THREE BOXES
<%=「The box contained three boxes」.toLowerCase()%>
the box contained three boxes
當你需要進行不區分大小寫的子串搜索時,這兩個方法是特別有用的。例如,假設你需要找到字符串中第一次出現單詞box的位置,不 區分大小寫可以如下去做:
<%=「The box contained three boxes」.toUpperCase().indexOf(「BOX」)%>
在此例中,在使用indexOf()方法來搜索子串前字符串先被全部轉變為大寫。通過把字符串全部轉變為大寫,你可以不區分大小 寫在字符串中搜索單詞box。
|