假设有⼀个字符串,可能'Good Morning'也可能是'Hello World',我想将第五个字符,替换成'-'。
因为字符串虽然可以像数组那样获取某⼀位置字符'Hello World'[4],但是不能像数组那样直接修改某⼀位置的字符'Hello World'[4] = '-',这样是⾏不通的,但是可以把它切分成数组,修改某⼀位置的值,然后在合并回来。⽅法1:
const replaceStr1 = (str, index, char) => { const strAry = str.split(''); strAry[index] = char; return strAry.join(''); }
replaceStr(str1, 4, '-'); // => Good-Morning replaceStr(str2, 4, '-'); // => Hell- World
js的字符串有个substring⽅法,⽤于提取字符串中介于两个指定下标之间的字符,也就是说可以⽤'Hello World'.substring(0, 4),得到Hell,加上要替换的字符,再加上后⾯的字符串就可以。⽅法2:
const replaceStr2 = (str, index, char) => {
return str.substring(0, index) + char + str.substring(index + 1); }
replaceStr2(str1, 4, '-'); // => Good-Morning replaceStr2(str2, 4, '-'); // => Hell- World
ps:下⾯看下js替换字符串中所有指定的字符
第⼀次发现JavaScript中replace()⽅法如果直接⽤str.replace(\"-\只会替换第⼀个匹配的字符.⽽str.replace(/\\-/g,\"!\")则可以全部替换掉匹配的字符(g为全局标志)。
replace()
Thereplace()methodreturnsthestringthatresultswhenyoureplacetextmatchingitsfirstargument(aregularexpression)withthetextofthesecondargument(astring).
Iftheg(global)flagisnotsetintheregularexpressiondeclaration,thismethodreplacesonlythefirstoccurrenceofthepattern.Forexample,
vars=\"Hello.Regexpsarefun.\";s=s.replace(/\\./,\"!\");//replacefirstperiodwithanexclamationpointalert(s);producesthestring“Hello!Regexpsarefun.”Includingthegflagwillcausetheinterpretertoperformaglobalreplace,findingandreplacingeverymatchingsubstring.Forexample,
vars=\"Hello.Regexpsarefun.\";s=s.replace(/\\./g,\"!\");//replaceallperiodswithexclamationpointsalert(s);yieldsthisresult:“Hello!Regexpsarefun!”所以可以⽤以下⼏种⽅式.:
string.replace(/reallyDo/g,replaceWith);
string.replace(newRegExp(reallyDo,'g'),replaceWith);
string:字符串表达式包含要替代的⼦字符串。reallyDo:被搜索的⼦字符串。
replaceWith:⽤于替换的⼦字符串。Js代码
总结
到此这篇关于JS替换字符串中指定位置的字符的⽂章就介绍到这了,更多相关js替换字符内容请搜索以前的⽂章或继续浏览下
⾯的相关⽂章希望⼤家以后多多⽀持!
因篇幅问题不能全部显示,请点此查看更多更全内容