charAt()方法和charCodeAt()方法用於選取字符串中某一位置上的單個字符。對於檢查用戶輸入的有效性,這兩個方法也是非常有用的。在第6章介紹HTML表單時,你將看到這兩個方法的更多具體應用。
charAt()方法具有一個參數:即所選取字符在字符串中的位置。charAt()方法的返回值就是該位置上的字符。字符串中字符的索引位置從0開始,因此,第一個字符的索引是0,第二個字符的索引是1,依此類推。
例如,要選取一個字符串中最後一個字符,可以使用如下代碼:
var myString = prompt("Enter some text","Hello World!");
var theLastChar = myString.charAt(myString.length - 1);
document.write("The last character is " + theLastChar);
上面的第一行代碼使用prompt() 函數顯示一個提示框,請求用戶輸入一個字符串,如果用戶未輸入,則默認值為"Hello World! ",變量myString用於保存prompt()函數返回的字符串。
在上面的第二行代碼中,使用charAt()方法獲取字符串中的最後一個字符。我們傳入charAt()方法的參數是最後一個字符的索引位置:(myString.length–1)。以字符串"Hello World! "為例,這個字符串的長度為12,則最後一個字符的索引為11。這是因為字符串的索引從0開始計算,把字符串的長度減去1就得到最後一個字符的索引。
在上面的第三行代碼中,將最後一個字符輸出在頁面上。
charCodeAt()方法與charAt()方法類似,但它並不返回指定位置上的字符本身,而是返回該字符在Unicode字符集中的編碼值。計算機只能理解數字,對於計算機來說,所有字符串都是某種編碼的數字。當需要使用的是數字編碼所代表的字符,而不是使用數字本身時,計算機將根據編碼與字符集的內部對應關系,把每一個編碼轉換為字符集中相應的字符。
例如,要選取一個字符串中第一個字符的Unicode編碼,可以使用如下代碼:
var myString = prompt("Enter some text","Hello World!");
var theFirstCharCode = myString.charCodeAt(0);
document.write("The first character code is " + theFirstCharCode);
上面的代碼將獲取用戶輸入字符串的第一個字符的Unicode編碼,並把編碼輸出在頁面上。
字符是按順序進行編碼的,例如,字符A的編碼是65,字符B的編碼是66,依此類推。小寫字母從97開始編碼,即字母a的編碼是97,字母b的編碼是98,依此類推。數字字符則是從48開始編碼,字符0的編碼是48,而字符9的編碼是57。我們可以使用字符的編碼來實現一些功能,例如下面的例子。
在下面這個例子中,我們將使用charCodeAt()方法來檢查指定字符串的第一個字符,以確定它是數字、大寫字符、小寫字符或其他字符:
<html>
<head>
<script language="JavaScript" type="text/javascript">
function checkCharType(charToCheck)
{
var returnValue = "O";
var charCode = charToCheck.charCodeAt(0);
if (charCode >= "A".charCodeAt(0) && charCode <= "Z".charCodeAt(0))
{