javascript
JS-String方法
JavaScript String 對(duì)象參考手冊(cè)
1.String 對(duì)象
String 對(duì)象用于處理文本(字符串)。
創(chuàng)建 String 對(duì)象的語法:
new String(s);
String(s);參數(shù)
參數(shù) s 是要存儲(chǔ)在 String 對(duì)象中或轉(zhuǎn)換成原始字符串的值。
返回值
當(dāng) String() 和運(yùn)算符 new 一起作為構(gòu)造函數(shù)使用時(shí),它返回一個(gè)新創(chuàng)建的 String 對(duì)象,存放的是字符串 s 或 s 的字符串表示。
當(dāng)不用 new 運(yùn)算符調(diào)用 String() 時(shí),它只把 s 轉(zhuǎn)換成原始的字符串,并返回轉(zhuǎn)換后的值。
2.String 對(duì)象屬性:length()
length 屬性可返回字符串中的字符數(shù)目。
實(shí)例
<script type="text/javascript">
var txt="Hello World!"
document.write(txt.length)
</script>
輸出:
12
3.一些對(duì)樣式的控制方法:
big():用大號(hào)字體顯示字符串,如:"Hello world!".big()
blink():顯示閃動(dòng)字符串,此方法無法工作于 Internet Explorer 中。
bold():使用粗體顯示字符串。
italics():使用斜體顯示字符串。
small():使用小字號(hào)來顯示字符串。
strike():使用刪除線來顯示字符串。
sub():把字符串顯示為下標(biāo)。
sup():把字符串顯示為上標(biāo)。
toLowerCase(): 把字符串轉(zhuǎn)換為小寫。
toUpperCase(): 把字符串轉(zhuǎn)換為大寫。
fixed(): 以打字機(jī)文本顯示字符串。
fontcolor(): 使用指定的顏色來顯示字符串。
fontsize(): 使用指定的尺寸來顯示字符串。
link():用于把字符串顯示為超鏈接,如:“百度”.link("http://www.baidu.com"))
4.anchor()
定義和用法
anchor() 方法用于創(chuàng)建 HTML 錨,stringObject.anchor(anchorname)
實(shí)例
<script type="text/javascript">
var txt="Hello world!"
document.write(txt.anchor("myanchor"))
</script>
上面的代碼將輸出為純粹的 HTML:
<a name="myanchor">Hello world!</a>
5.charAt()
定義和用法
charAt() 方法可返回指定位置的字符。
請(qǐng)注意,JavaScript 并沒有一種有別于字符串類型的字符數(shù)據(jù)類型,所以返回的字符是長(zhǎng)度為 1 的字符串。
語法:stringObject.charAt(index)參數(shù) 描述
index 必需。表示字符串中某個(gè)位置的數(shù)字,即字符在字符串中的下標(biāo)。
注釋:字符串中第一個(gè)字符的下標(biāo)是 0。如果參數(shù) index 不在 0 與 string.length 之間,該方法將返回一個(gè)空字符串。
實(shí)例
<script type="text/javascript">
var str="Hello world!"
document.write(str.charAt(1))
</script>
以上代碼的輸出是:e
6.concat()
定義和用法:concat() 方法用于連接兩個(gè)或多個(gè)字符串。
語法
stringObject.concat(stringX,stringX,...,stringX)參數(shù) 描述 ,stringX 必需。將被連接為一個(gè)字符串的一個(gè)或多個(gè)字符串對(duì)象。
concat() 方法將把它的所有參數(shù)轉(zhuǎn)換成字符串,然后按順序連接到字符串 stringObject 的尾部,并返回連接后的字符串。請(qǐng)注意,stringObject 本身并沒有被更改。
stringObject.concat() 與 Array.concat() 很相似。
提示:請(qǐng)注意,使用 " + " 運(yùn)算符來進(jìn)行字符串的連接運(yùn)算通常會(huì)更簡(jiǎn)便一些。
實(shí)例
<script type="text/javascript">
var str1="Hello "
var str2="world!"
document.write(str1.concat(str2))
</script>
以上代碼的輸出是:Hello world!
7.indexOf()
定義和用法:indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。
語法:stringObject.indexOf(searchvalue,fromindex)參數(shù) 描述
searchvalue 必需。規(guī)定需檢索的字符串值。
fromindex 可選的整數(shù)參數(shù)。規(guī)定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數(shù),則將從字符串的首字符開始檢索。
注釋:indexOf() 方法對(duì)大小寫敏感!
注釋:如果要檢索的字符串值沒有出現(xiàn),則該方法返回 -1。
實(shí)例
<script type="text/javascript">
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
</script>
以上代碼的輸出:0 ,-1,6
8.lastIndexOf()
介紹同indexOf()
實(shí)例
<script type="text/javascript">
var str="Hello world!"
document.write(str.lastIndexOf("Hello") + "<br />")
document.write(str.lastIndexOf("World") + "<br />")
document.write(str.lastIndexOf("world"))
</script>
以上代碼的輸出:0,-1,6
9.localeCompare()
定義和用法:用本地特定的順序來比較兩個(gè)字符串。
語法:
stringObject.localeCompare(target)參數(shù) 描述
target 要以本地特定的順序與 stringObject 進(jìn)行比較的字符串。
返回值
說明比較結(jié)果的數(shù)字。如果 stringObject 小于 target,則 localeCompare() 返回小于 0 的數(shù)。如果 stringObject 大于 target,則該方法返回大于 0 的數(shù)。如果兩個(gè)字符串相等,或根據(jù)本地排序規(guī)則沒有區(qū)別,該方法返回 0。
說明
把 < 和 > 運(yùn)算符應(yīng)用到字符串時(shí),它們只用字符的 Unicode 編碼比較字符串,而不考慮當(dāng)?shù)氐呐判蛞?guī)則。以這種方法生成的順序不一定是正確的。例如,在西班牙語中,其中字符 “ch” 通常作為出現(xiàn)在字母 “c” 和 “d” 之間的字符來排序。
localeCompare() 方法提供的比較字符串的方法,考慮了默認(rèn)的本地排序規(guī)則。ECMAscript 標(biāo)準(zhǔn)并沒有規(guī)定如何進(jìn)行本地特定的比較操作,它只規(guī)定該函數(shù)采用底層操作系統(tǒng)提供的排序規(guī)則。
實(shí)例
var str;
str.sort (
function(a,b){
?? return a.localeCompare(b)
?? }
)
10.match()
定義和用法
match() 方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。
該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
語法
stringObject.match(searchvalue)
stringObject.match(regexp)
參數(shù) 描述 :searchvalue 必需。規(guī)定要檢索的字符串值。
regexp 必需。規(guī)定要匹配的模式的 RegExp 對(duì)象。如果該參數(shù)不是 RegExp 對(duì)象,則需要首先把它傳遞給 RegExp 構(gòu)造函數(shù),將其轉(zhuǎn)換為 RegExp 對(duì)象。
返回值
存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。
說明
match() 方法將檢索字符串 stringObject,以找到一個(gè)或多個(gè)與 regexp 匹配的文本。這個(gè)方法的行為在很大程度上有賴于 regexp 是否具有標(biāo)志 g。
如果 regexp 沒有標(biāo)志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個(gè)數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。該數(shù)組的第 0 個(gè)元素存放的是匹配文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本。除了這些常規(guī)的數(shù)組元素之外,返回的數(shù)組還含有兩個(gè)對(duì)象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對(duì) stringObject 的引用。
如果 regexp 具有標(biāo)志 g,則 match() 方法將執(zhí)行全局檢索,找到 stringObject 中的所有匹配子字符串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個(gè)或多個(gè)匹配子串,則返回一個(gè)數(shù)組。不過全局匹配返回的數(shù)組的內(nèi)容與前者大不相同,它的數(shù)組元素中存放的是 stringObject 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。
注意:在全局檢索模式下,match() 即不提供與子表達(dá)式匹配的文本的信息,也不聲明每個(gè)匹配子串的位置。如果您需要這些全局檢索的信息,可以使用 RegExp.exec()。
例子 1
<script type="text/javascript">
var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))
</script>
輸出:world,null,null,world!
例子 2
<script type="text/javascript">
var str="1 plus 2 equal 3"
document.write(str.match(//d+/g))
</script>
輸出:1,2,3
11.replace()
定義和用法
replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。
語法
stringObject.replace(regexp,replacement)
參數(shù) 描述 :regexp 必需。規(guī)定了要替換的模式的 RegExp 對(duì)象。請(qǐng)注意,如果該值是一個(gè)字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對(duì)象。
replacement 必需。一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。
返回值
一個(gè)新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。
說明
字符串 stringObject 的 replace() 方法執(zhí)行的是查找并替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來替換這些子串。如果 regexp 具有全局標(biāo)志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個(gè)匹配子串。
replacement 可以是字符串,也可以是函數(shù)。如果它是字符串,那么沒有匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。
字符 替換文本
$1、$2、...、$99 與 regexp 中的第 1 到第 99 個(gè)子表達(dá)式相匹配的文本。
$& 與 regexp 相匹配的子串。
$` 位于匹配子串左側(cè)的文本。
$' 位于匹配子串右側(cè)的文本。
$$ 直接量符號(hào)。
注意:ECMAScript v3 規(guī)定,replace() 方法的參數(shù) replacement 可以是函數(shù)而不是字符串。在這種情況下,每個(gè)匹配都調(diào)用該函數(shù),它返回的字符串將作為替換文本使用。該函數(shù)的第一個(gè)參數(shù)是匹配模式的字符串。接下來的參數(shù)是與模式中的子表達(dá)式匹配的字符串,可以有 0 個(gè)或多個(gè)這樣的參數(shù)。接下來的參數(shù)是一個(gè)整數(shù),聲明了匹配在 stringObject 中出現(xiàn)的位置。最后一個(gè)參數(shù)是 stringObject 本身。
例子 1
<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "W3School"))
</script>
輸出:Visit W3School!
例子 2:全局搜索
<script type="text/javascript">
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."
document.write(str.replace(/Microsoft/g, "W3School"))
</script>
輸出:
Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.
例子 3:對(duì)大小寫不敏感的搜索
text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");
例子 4:如何使用 replace() 來轉(zhuǎn)換姓名的格式。
name = "Doe, John";
name.replace(/(/w+)/s*, /s*(/w+)/, "$2 $1");
例子 5:如何使用 replace() 來轉(zhuǎn)換引號(hào)。
name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'");
例子 6:如何使用 replace() 把單詞的首字母轉(zhuǎn)換為大寫。
name = 'aaa bbb ccc';
uw=name.replace(//b/w+/b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
12.search()
定義和用法
search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。
語法
stringObject.search(regexp)參數(shù) 描述
regexp 該參數(shù)可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對(duì)象。
注釋:要執(zhí)行忽略大小寫的檢索,請(qǐng)追加標(biāo)志 i。
返回值
stringObject 中第一個(gè)與 regexp 相匹配的子串的起始位置。
注釋:如果沒有找到任何匹配的子串,則返回 -1。
說明
search() 方法不執(zhí)行全局匹配,它將忽略標(biāo)志 g。它同時(shí)忽略 regexp 的 lastIndex 屬性,并且總是從字符串的開始進(jìn)行檢索,這意味著它總是返回 stringObject 的第一個(gè)匹配的位置。
例子 1
<script type="text/javascript">
var str="Visit W3School!"
document.write(str.search(/W3School/))
</script>
輸出:6
13.slice()
定義和用法
slice() 方法可提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。
語法
stringObject.slice(start,end)參數(shù) 描述
start 要抽取的片斷的起始下標(biāo)。如果是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。
end 緊接著要抽取的片段的結(jié)尾的下標(biāo)。若未指定此參數(shù),則要提取的子串包括 start 到原字符串結(jié)尾的字符串。如果該參數(shù)是負(fù)數(shù),那么它規(guī)定的是從字符串的尾部開始算起的位置。
返回值
一個(gè)新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結(jié)束(不包括 end)為止的所有字符。
說明
String 對(duì)象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因?yàn)樗试S使用負(fù)數(shù)作為參數(shù)。slice() 與 substr() 有所不同,因?yàn)樗脙蓚€(gè)字符的位置來指定子串,而 substr() 則用字符位置和長(zhǎng)度來指定子串。
還要注意的是,String.slice() 與 Array.slice() 相似。
例子 1
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6))
</script>
輸出:happy world!
例子 2
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6,11))
</script>
輸出:happy
14.split()
定義和用法
split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。
語法
stringObject.split(separator,howmany)參數(shù) 描述
separator 必需。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割 stringObject。
howmany 可選。該參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度。如果設(shè)置了該參數(shù),返回的子串不會(huì)多于這個(gè)參數(shù)指定的數(shù)組。如果沒有設(shè)置該參數(shù),整個(gè)字符串都會(huì)被分割,不考慮它的長(zhǎng)度。
返回值
一個(gè)字符串?dāng)?shù)組。該數(shù)組是通過在 separator 指定的邊界處將字符串 stringObject 分割成子串創(chuàng)建的。返回的數(shù)組中的字串不包括 separator 自身。
但是,如果 separator 是包含子表達(dá)式的正則表達(dá)式,那么返回的數(shù)組中包括與這些子表達(dá)式匹配的字串(但不包括與整個(gè)正則表達(dá)式匹配的文本)。
提示和注釋
注釋:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每個(gè)字符之間都會(huì)被分割。
注釋:String.split() 執(zhí)行的操作與 Array.join 執(zhí)行的操作是相反的。
例子 1
<script type="text/javascript">
var str="How are you doing today?"
document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
</script>
輸出:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you
例子 2
"2:3:4:5".split(":") //將返回["2", "3", "4", "5"]
"|a|b|c".split("|") //將返回["", "a", "b", "c"]
例子 3:若只需要返回一部分字符,請(qǐng)使用 howmany 參數(shù):
"hello".split("", 3) //可返回 ["h", "e", "l"]
15.substr()
定義和用法
substr() 方法可在字符串中抽取從 start 下標(biāo)開始的指定數(shù)目的字符。
語法
stringObject.substr(start,length)參數(shù) 描述
start 必需。要抽取的子串的起始下標(biāo)。必須是數(shù)值。如果是負(fù)數(shù),那么該參數(shù)聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。
length 可選。子串中的字符數(shù)。必須是數(shù)值。如果省略了該參數(shù),那么返回從 stringObject 的開始位置到結(jié)尾的字串。
返回值
一個(gè)新的字符串,包含從 stringObject 的 start(包括 start 所指的字符) 處開始的 lenght 個(gè)字符。如果沒有指定 lenght,那么返回的字符串包含從 start 到 stringObject 的結(jié)尾的字符。
提示和注釋
注釋:substr() 的參數(shù)指定的是子串的開始位置和長(zhǎng)度,因此它可以替代 substring() 和 splice() 來使用。
重要事項(xiàng):ECMAscript 沒有對(duì)該方法進(jìn)行標(biāo)準(zhǔn)化,因此反對(duì)使用它。
重要事項(xiàng):在 IE 4 中,參數(shù) start 的值無效。在這個(gè) BUG 中,start 規(guī)定的是第 0 個(gè)字符的位置。在之后的版本中,此 BUG 已被修正。
例子 1
<script type="text/javascript">
var str="Hello world!"
document.write(str.substr(3))
</script>
16.substring()
定義和用法
substring() 方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符。
語法
stringObject.substring(start,stop)參數(shù) 描述
start 必需。一個(gè)非負(fù)的整數(shù),規(guī)定要提取的子串在第一個(gè)字符在 stringObject 中的位置。
stop 可選。一個(gè)非負(fù)的整數(shù),比要提取的子串的最后一個(gè)字符在 stringObject 中的位置多 1。如果省略該參數(shù),那么返回的子串會(huì)一直到字符串的結(jié)尾。
返回值
一個(gè)新的字符串,該字符串值包含 stringObject 的一個(gè)子字符串,其內(nèi)容是從 start 處到 stop-1 處的所有字符,其長(zhǎng)度為 stop 減 start。
說明
substring() 方法返回的子串包括 start 處的字符,但不包括 end 處的字符。
如果參數(shù) start 與 end 相等,那么該方法返回的就是一個(gè)空串(即長(zhǎng)度為 0 的字符串)。如果 start 比 end 大,那么該方法在提取子串之前會(huì)先交換這兩個(gè)參數(shù)。
提示和注釋
重要事項(xiàng):與 slice() 和 substr() 方法不同的是,substring() 不接受負(fù)的參數(shù)。
例子 2
<script type="text/javascript">
var str="Hello world!"
document.write(str.substring(3,7))
</script>
總結(jié)
以上是生活随笔為你收集整理的JS-String方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Js操作表格-对表格单元格的添加删除修改
- 下一篇: js运动动画的八个知识点