繁体   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