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)始檢索的位置。它的合法取值是0到stringObject.length - 1。如省略該參數(shù),則將從字符串的首字符開(kāi)始檢索。
indexOf() 方法對(duì)大小寫(xiě)敏感!
lastIndexOf(searchvalue,fromindex)方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索。
searchvalue:必需。規(guī)定需檢索的字符串值。
fromindex:可選的整數(shù)參數(shù)。規(guī)定在字符串中開(kāi)始檢索的位置。它的合法取值是0到stringObject.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


