簡體   English   中英

如何用 javascript 中的新字符串和填充替換字符串的前 5 個字符?

[英]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}並將第二個參數replacestr2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM