- 相關(guān)推薦
JavaScript中常見的字符串操作函數(shù)及用法
JavaScript(簡(jiǎn)稱“JS”)是一種具有函數(shù)優(yōu)先的輕量級(jí),解釋型或即時(shí)編譯型的編程語(yǔ)言。雖然它是作為開發(fā)Web頁(yè)面的腳本語(yǔ)言而出名,但是它也被用到了很多非瀏覽器環(huán)境中,以下是小編整理的JavaScript中常見的字符串操作函數(shù)及用法,歡迎閱讀。
JavaScript中常見的字符串操作函數(shù)及用法
1、字符串轉(zhuǎn)換
字符串轉(zhuǎn)換是最基礎(chǔ)的要求和工作,你可以將任何類型的數(shù)據(jù)都轉(zhuǎn)換為字符串,你可以用下面三種方法的任何一種:
var num= 19; // 19var myStr = num.toString(); // "19"
你同樣可以這么做:
var num= 19; // 19var myStr = String(num); // "19"
或者,再簡(jiǎn)單點(diǎn)兒:
var num= 19; // 19var myStr = "" +num; // "19"
2、字符串分割
字符串分割,即將一個(gè)字符串分割為多個(gè)字符串,JavaScript中給我們提供了一個(gè)非常方便的函數(shù),如:
var myStr = "I,Love,You,Do,you,love,me";var substrArray = myStr .split(",");// ["I", "Love", "You", "Do", "you", "love", "me"];var arrayLimited = myStr .split(",", 3);// ["I", "Love", "You"];
split()的第二個(gè)參數(shù),表示返回的字符串?dāng)?shù)組的最大長(zhǎng)度。
3、獲取字符串長(zhǎng)度
字符串長(zhǎng)度是在開發(fā)中經(jīng)常要用到的,非常簡(jiǎn)單如下:
var myStr = "I,Love,You,Do,you,love,me";var myStrLength = myStr.length; //25
4、查詢子字符串
很多人都會(huì)忘記這幾個(gè)JavaScript的自帶的方法,或者忘記它們的具體用法,從而導(dǎo)致在做題的時(shí)候不得不嵌套for循環(huán)來(lái)做。
第一個(gè)函數(shù):indexOf(),它從字符串的開頭開始查找,找到返回對(duì)應(yīng)坐標(biāo),找不到返回-1。如下:
var myStr = "I,Love,you,Do,you,love,me";var index = myStr.indexOf("you"); // 7 ,基于0開始,找不到返回-1
第二個(gè)函數(shù):lastIndexOf(),它從字符串的末尾開始查找,找到返回對(duì)應(yīng)坐標(biāo),找不到返回-1。如下:
var myStr = "I,Love,you,Do,you,love,me";var index = myStr.lastIndexOf("you"); // 14
以上兩個(gè)函數(shù)同樣接收第二個(gè)可選的參數(shù),表示開始查找的位置。
第二個(gè)可選的參數(shù),表示開始查找的位置。
5、字符串替換
單單查到字符串應(yīng)該還不會(huì)停止,一般題目都還經(jīng)常會(huì)遇到讓你查到并替換為你自己的字符串,例如:
var myStr = "I,love,you,Do,you,love,me";var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me"
默認(rèn)只替換第一次查找到的,想要全局替換,需要置上正則全局標(biāo)識(shí),如:
var myStr = "I,love,you,Do,you,love,me";var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me"
更多的詳解,可參考:/w3school/js/jsref_replace.htm
6、查找給定位置的字符或其字符編碼值
想要查找給定位置的字符,你可以使用如下函數(shù):
var myStr = "I,love,you,Do,you,love,me";var theChar = myStr.charAt(8);// "o",同樣從0開始
同樣,它的一個(gè)兄弟函數(shù)就是查找對(duì)應(yīng)位置的字符編碼值,如:
var myStr = "I,love,you,Do,you,love,me";var theChar = myStr.charCodeAt(8); //111
7、字符串連接
字符串連接操作可以簡(jiǎn)單到用一個(gè)加法運(yùn)算符搞定,如:
var str1 = "I,love,you!";var str2 = "Do,you,love,me";var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me"
同樣,JavaScript也自帶了相關(guān)的函數(shù),如:
var str1 = "I,love,you!";var str2 = "Do,you,love,me";var str = str1.concat(str2);//"I,love,you!Do,you,love,me"
其中concat()函數(shù)可以有多個(gè)參數(shù),傳遞多個(gè)字符串,拼接多個(gè)字符串。
8、字符串切割和提取
有三種可以從字符串中抽取和切割的方法,如:
第一種,使用slice():
var myStr = "I,love,you,Do,you,love,me";var subStr = myStr.slice(1,5);//",lov"
第二種,使用substring():
var myStr = "I,love,you,Do,you,love,me";var subStr = myStr.substring(1,5); //",lov"
第三種,使用substr():
var myStr = "I,love,you,Do,you,love,me";var subStr = myStr.substr(1,5); //",love"
與第一種和第二種不同的是,substr()第二個(gè)參數(shù)代表截取的字符串最大長(zhǎng)度,如上結(jié)果所示。
9、字符串大小寫轉(zhuǎn)換
常用的轉(zhuǎn)換為大寫或者小寫字符串函數(shù),如下:
var myStr = "I,love,you,Do,you,love,me";var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me";var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
10、字符串匹配
字符串匹配可能需要你對(duì)正則表達(dá)式有一定的了解,先來(lái)看看match()函數(shù):
var myStr = "I,love,you,Do,you,love,me";var pattern = /love/;var result = myStr.match(pattern);//["love"]console.log(result .index);//2console.log(result.input );//I,love,you,Do,you,love,me
如你所見,match()函數(shù)在字符串上調(diào)用,并且接受一個(gè)正則的參數(shù)。來(lái)看看第二個(gè)例子,使用exec()函數(shù):
var myStr = "I,love,you,Do,you,love,me";var pattern = /love/;var result = pattern .exec(myStr);//["love"]console.log(result .index);//2console.log(result.input );//I,love,you,Do,you,love,me
簡(jiǎn)單吧,僅僅是把正則和字符串換了個(gè)位置,即exec()函數(shù)是在正則上調(diào)用,傳遞字符串的參數(shù)。對(duì)于上面兩個(gè)方法,匹配的結(jié)果都是返回第一個(gè)匹配成功的字符串,如果匹配失敗則返回null.
再來(lái)看一個(gè)類似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me";var pattern = /love/;var result = myStr.search(pattern);//2
僅返回查到的匹配的下標(biāo),如果匹配失敗則返回-1.
11、字符串比較
比較兩個(gè)字符串,比較是規(guī)則是按照字母表順序比較的,如:
var myStr = "chicken";var myStrTwo = "egg";var first = myStr.localeCompare(myStrTwo); // -1first = myStr.localeCompare("chicken"); // 0first = myStr.localeCompare("apple"); // 1
12、舉例
最后我們來(lái)看一道前端筆試題,去哪兒網(wǎng)的,相信很多孩子都做到過這個(gè)題了。題目:寫一個(gè)getSuffix函數(shù),用于獲得輸入?yún)?shù)的后綴名,例如輸入abcd.txt,返回txt。附上我的答案:
function getSuffix(file){ return file.slice(file.lastIndexOf(".") + 1,file.length); }
javascript函數(shù)知識(shí)歸納
abs 方法 返回一個(gè)數(shù)的絕對(duì)值。
acos 方法 返回一個(gè)數(shù)的反余弦。
anchor 方法 在對(duì)象的指定文本兩端加上一個(gè)帶 NAME 屬性的 HTML 錨點(diǎn)。
asin 方法 返回一個(gè)數(shù)的反正弦。
atan 方法 返回一個(gè)數(shù)的反正切。
atan2 方法 返回從 X 軸到點(diǎn)(y, x)的角度(以弧度為單位)。
atEnd 方法 返回一個(gè)表明枚舉算子是否處于集合結(jié)束處的 Boolean 值。
big 方法在String 對(duì)象的文本兩端加入 HTML 的標(biāo)識(shí)。
blink 方法 將 HTML 的標(biāo)識(shí)添加到 String 對(duì)象中的文本兩端。
bold 方法 將 HTML 的標(biāo)識(shí)添加到String 對(duì)象中的文本兩端。
ceil 方法 返回大于或等于其數(shù)值參數(shù)的最小整數(shù)。
charAt 方法 返回位于指定索引位置的字符。
charCodeAt 方法 返回指定字符的 Unicode 編碼。
compile 方法 將一個(gè)正則表達(dá)式編譯為內(nèi)部格式。
concat 方法(Array)返回一個(gè)由兩個(gè)數(shù)組合并組成的新數(shù)組。
concat 方法(String) 返回一個(gè)包含給定的兩個(gè)字符串的連接的 String 對(duì)象。
cos 方法 返回一個(gè)數(shù)的余弦。
dimensions 方法 返回 VBArray 的維數(shù)。
escape 方法 對(duì) String 對(duì)象編碼,以便在所有計(jì)算機(jī)上都能閱讀。
eval 方法 對(duì) JScript 代碼求值然后執(zhí)行之。
exec 方法在指定字符串中執(zhí)行一個(gè)匹配查找。
exp 方法 返回 e (自然對(duì)數(shù)的底) 的冪。
fixed 方法 將 HTML 的 標(biāo)識(shí)添加到String 對(duì)象中的文本兩端。
floor 方法 返回小于或等于其數(shù)值參數(shù)的最大整數(shù)。
fontcolor 方法 將 HTML 帶 COLOR 屬性的標(biāo)識(shí)添加到 String 對(duì)象中的文本兩端。
fontsize 方法 將 HTML 帶 SIZE 屬性的標(biāo)識(shí)添加到 String 對(duì)象中的文本兩端。
fromCharCode 方法 返回 Unicode 字符值的字符串。
getDate 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的月份日期值。
getDay 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的星期幾。
getFullYear 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的年份。
getHours 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的小時(shí)值。
getItem 方法 返回位于指定位置的項(xiàng)。
getMilliseconds 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的毫秒值。
getMinutes 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的分鐘值。
getMonth 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的月份。
getSeconds 方法 使用當(dāng)?shù)貢r(shí)間返回 Date 對(duì)象的秒數(shù)。
getTime 方法 返回 Date 對(duì)象中的時(shí)間。
getTimezoneOffset 方法 返回主機(jī)的時(shí)間和全球標(biāo)準(zhǔn)時(shí)間(UTC)之間的差(以分鐘為單位)。
getUTCDate 方法使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回 Date 對(duì)象的日期值。
getUTCDay 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回 Date 對(duì)象的星期幾。
getUTCFullYear 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回 Date 對(duì)象的年份。
getUTCHours 方法使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回Date 對(duì)象的小時(shí)數(shù)。
getUTCMilliseconds 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回Date 對(duì)象的毫秒數(shù)。
getUTCMinutes 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回 Date 對(duì)象的分鐘數(shù)。
getUTCMonth 方法使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回 Date 對(duì)象的月份值。
getUTCSeconds 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)返回Date對(duì)象的秒數(shù)。
getVarDate 方法 返回 Date 對(duì)象中的 VT_DATE。
getYear 方法 返回 Date 對(duì)象中的年份。
indexOf 方法 返回在 String 對(duì)象中第一次出現(xiàn)子字符串的字符位置。
isFinite 方法 返回一個(gè) Boolean 值,表明某個(gè)給定的數(shù)是否是有窮的。
isNaN 方法 返回一個(gè) Boolean 值,表明某個(gè)值是否為保留值 NaN (不是一個(gè)數(shù))。
italics 方法 將 HTML的 標(biāo)識(shí)添加到 String 對(duì)象中的文本兩端。
item 方法 返回集合中的當(dāng)前項(xiàng)。
join 方法 返回一個(gè)由數(shù)組中的所有元素連接在一起的 String 對(duì)象。
lastIndexOf 方法 返回在 String 對(duì)象中子字符串最后出現(xiàn)的位置。
lbound 方法 返回在 VBArray 中指定維數(shù)所用的最小索引值。
link 方法 將帶 HREF 屬性的 HTML 錨點(diǎn)添加到 String 對(duì)象中的文本兩端。
log 方法 返回某個(gè)數(shù)的自然對(duì)數(shù)。
match 方法使用給定的正則表達(dá)式對(duì)象對(duì)字符串進(jìn)行查找,并將結(jié)果作為數(shù)組返回。
max 方法 返回給定的兩個(gè)表達(dá)式中的較大者。
min 方法返回給定的兩個(gè)數(shù)中的較小者。
moveFirst 方法 將集合中的當(dāng)前項(xiàng)設(shè)置為第一項(xiàng)。
moveNext 方法 將當(dāng)前項(xiàng)設(shè)置為集合中的下一項(xiàng)。
parse 方法 對(duì)包含日期的字符串進(jìn)行分析,并返回該日期與1970年1月1日零點(diǎn)之間相差的毫秒數(shù)。
parseFloat 方法返回從字符串轉(zhuǎn)換而來(lái)的浮點(diǎn)數(shù)。
parseInt 方法 返回從字符串轉(zhuǎn)換而來(lái)的整數(shù)。
pow 方法 返回一個(gè)指定冪次的底表達(dá)式的值。
random 方法 返回一個(gè) 0 和 1 之間的偽隨機(jī)數(shù)。
replace 方法 返回根據(jù)正則表達(dá)式進(jìn)行文字替換后的字符串的拷貝。
reverse 方法 返回一個(gè)元素反序的 Array 對(duì)象。
round 方法 將一個(gè)指定的數(shù)值表達(dá)式舍入到最近的整數(shù)并將其返回。
search 方法 返回與正則表達(dá)式查找內(nèi)容匹配的第一個(gè)子字符串的位置。
setDate 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的數(shù)值日期。
setFullYear 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的年份。
setHours 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的小時(shí)值。
setMilliseconds 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的毫秒值。
setMinutes 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的分鐘值。
setMonth 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的月份。
setSeconds 方法 使用當(dāng)?shù)貢r(shí)間設(shè)置 Date 對(duì)象的秒值。
setTime 方法 設(shè)置 Date 對(duì)象的日期和時(shí)間。
setUTCDate 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的數(shù)值日期。
setUTCFullYear 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的年份。
setUTCHours 方法使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的小時(shí)值。
setUTCMilliseconds 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的毫秒值。
setUTCMinutes 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的分鐘值。
setUTCMonth 方法使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的月份。
setUTCSeconds 方法 使用全球標(biāo)準(zhǔn)時(shí)間(UTC)設(shè)置 Date 對(duì)象的秒值。
【JavaScript中常見的字符串操作函數(shù)及用法】相關(guān)文章:
Javascript函數(shù)的定義和用法分析03-31
JavaScript中push(),join() 函數(shù)實(shí)例詳解03-31
Javascript的this用法簡(jiǎn)述03-25
javascript中for/in循環(huán)以及常見的使用技巧04-02
javascript學(xué)習(xí)中的常見問題總結(jié)10-06
淺析jQuery 遍歷函數(shù)javascript03-29
php字符串處理函數(shù)大全03-20