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