JS字符串常用操作

1.截取
  • substr
    substr(start,length)方法截取字符串(包括start
    start:必需。要抽取的子串的起始下標(biāo)。必須是數(shù)值。如果是負(fù)數(shù),那么該參數(shù)聲明從字符串的尾部開(kāi)始算起的位置。也就是說(shuō),-1 指字符串中最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類(lèi)推。
    length: 可選。子串中的字符數(shù)。必須是數(shù)值。如果省略了該參數(shù),那么返回從 stringObject 的開(kāi)始位置到結(jié)尾的字串。
    如下:從第三位起截取五個(gè)字符:
    image.png
  • substring
    substring(start,end)方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符。(不包括end
    start,必需。一個(gè)非負(fù)的整數(shù),規(guī)定要提取的子串的第一個(gè)字符在 stringObject 中的位置。
    end,可選。一個(gè)非負(fù)的整數(shù),比要提取的子串的最后一個(gè)字符在 stringObject 中的位置多 1,如果省略該參數(shù),那么返回的子串會(huì)一直到字符串的結(jié)尾。
    重要事項(xiàng):與 slice() 和substr() 不同的是,substring() 不接受負(fù)的參數(shù)。,如果參數(shù)值為負(fù)數(shù)先轉(zhuǎn)化為0,
    substr()相同的例子,結(jié)果卻有所不同:
    image.png
  • slice
    slice(start,end)方法 與subtring(start,end)類(lèi)似,區(qū)別是參數(shù)可為負(fù)數(shù)
    對(duì)比如下:
    image.png
2.查找和替換
  • search
    search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串,返回第一個(gè)與 regexp 相匹配的子串的起始位置,沒(méi)有找到任何匹配的子串,則返回 -1。
  • match
    match()方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配,存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴(lài)于 regexp 是否具有全局標(biāo)志 g。
  • indexOf / lastIndexOf
    indexOf(searchvalue,fromindex) 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置,沒(méi)有找到任何匹配的子串,則返回 -1。
    searchvalue:必需。規(guī)定需檢索的字符串值
    fromindex: 可選的整數(shù)參數(shù)。規(guī)定在字符串中開(kāi)始檢索的位置。它的合法取值是0stringObject.length - 1。如省略該參數(shù),則將從字符串的首字符開(kāi)始檢索。
    indexOf() 方法對(duì)大小寫(xiě)敏感!
    lastIndexOf(searchvalue,fromindex) 方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索。
    searchvalue:必需。規(guī)定需檢索的字符串值。
    fromindex:可選的整數(shù)參數(shù)。規(guī)定在字符串中開(kāi)始檢索的位置。它的合法取值是0stringObject.length - 1。如省略該參數(shù),則將從字符串的最后一個(gè)字符處開(kāi)始檢索。
  • replace
    replace(regexp/substr,replacement)方法用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串,返回一個(gè)新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。(不改變?cè)甲址?/em>
    regexp/substr:必需。規(guī)定子字符串或要替換的模式的 RegExp 對(duì)象。
    replacement: 必需。一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。
3.字符串轉(zhuǎn)換數(shù)組(split方法)

split(separator,howmany),返回一個(gè)字符串?dāng)?shù)組。
該數(shù)組是通過(guò)在separator 指定的邊界處將字符串 stringObject分割成子串創(chuàng)建的,返回的數(shù)組中的字串不包括 separator 自身,但是,如果 separator 是包含子表達(dá)式的正則表達(dá)式,那么返回的數(shù)組中包括與這些子表達(dá)式匹配的字串(但不包括與整個(gè)正則表達(dá)式匹配的文本)
separator:必需。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割 stringObject。
howmany:可選。該參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度。如果設(shè)置了該參數(shù),返回的子串不會(huì)多于這個(gè)參數(shù)指定的數(shù)組。如果沒(méi)有設(shè)置該參數(shù),整個(gè)字符串都會(huì)被分割,不考慮它的長(zhǎng)度。

4.實(shí)用項(xiàng)目場(chǎng)景
  • 根據(jù)位置數(shù)組,對(duì)字符串中的特定字符標(biāo)色
    方法一:
   // 指定排序的比較函數(shù) 
function compare(property) {
        return function(obj1, obj2) {
            var value1 = obj1[property];
            var value2 = obj2[property];
            return value1 - value2; // 升序
        }
}
function drawhighlight(item, posarr) {  
        posarr = posarr.sort(compare("pos")); 
        //es6寫(xiě)法
        /* posarr = posarr.sort((a, b) => {
           return a.pos - b.pos;
        }); */
        var newitem = item;
        for (var i = 0; i < posarr.length; i++) {
            var item2 = posarr[i];
            var pos = item2.pos;
            var len = item2.len;
            var replacestr = "<fonth>" + item.substr(pos, len) + "</fonth>";
            pos += i * 15;
            newitem = newitem.substring(0, pos) + replacestr + newitem.substring(pos + len)
        }
        return newitem;
 }

方法二:....

s

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容