[英]How can I replace first 5 characters of a string with new another string and padding in javascript?
如果我有一個字符串需要用新字符串替換前 5 個字符並用 0 填充,最好的方法是什么?
前任:
const str1="jsdf532903043900934";
const str2= "21";
\\replace str1 with str2 "21" plus 3 zeros on the right
\\new string should be 2100032903043900934
只需使用String.substr()
獲取索引 5 之后的子字符串。
const str1="jsdf532903043900934"; const str2= "21"; const newStr = str2 + "000" + str1.substr(5) console.log(newStr);
const str1 = "jsdf532903043900934"; const str2 = "21"; const result = replace(str1, str2, "5"); console.log(result); function replace(str1, str2, length) { const pattern = new RegExp(`^.{${length}}`); return str1.replace(pattern, str2.padEnd(length, '0')); }
我讓這個例子接受了一個length
參數,所以如果需要的話改變長度會更容易。 如果不需要,您可以將其刪除並將表達式更改為^.{5}
並將第二個參數replace
為str2.padEnd(5, '0')
。
此正則表達式使用^
匹配字符串的開頭,然后使用 . 匹配任何字符.
使用插入花括號內的length
參數精確地乘以length
。
像這樣,使用 padStart 和 substr
const str1="jsdf532903043900934"; const str2= "21234"; console.log(str2 + str1.substr(5).padStart(str1.length - str2.length,0));
您可以在字符串末尾重復添加 0 以作為前綴,直到達到所需的長度:
const str1="jsdf532903043900934";
const str2= "21";
var newString = str2;
for (let i = str2.length; i < 5; i++) newString += "0";
var output = newString + str1.substring(5);
您應該使用slice()
之類的東西,因為現在不推薦使用substr()
。
const str1 = "jsdf532903043900934"
const str2 = "21"
const str3 = str2 + "000" + str1.slice(2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.