如何在javascript中用新的字符串和填充替换字符串的前5个字符?

b91juud3  于 2023-01-16  发布在  Java
关注(0)|答案(5)|浏览(163)

如果我有一个字符串,需要用一个新的字符串替换前5个字符,并且用0填充,最好的方法是什么?
例如:

const str1="jsdf532903043900934";
const str2= "21";

\\replace str1 with str2 "21" plus 3 zeros on the right
\\new string should be 2100032903043900934
6bc51xsx

6bc51xsx1#

只需使用String.substr()来获取索引5之后的子字符串。

const str1="jsdf532903043900934";
const str2= "21";

const newStr = str2 + "000" + str1.substr(5)
console.log(newStr);
xxls0lw8

xxls0lw82#

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次。

bqjvbblv

bqjvbblv3#

类似这样,使用padStart和substr

const str1="jsdf532903043900934";
const str2= "21234";

console.log(str2 + str1.substr(5).padStart(str1.length - str2.length,0));
2ul0zpep

2ul0zpep4#

您可以重复在字符串末尾添加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);
gywdnpxw

gywdnpxw5#

您应该使用类似slice()的代码,因为substr()现在已被弃用。

const str1 = "jsdf532903043900934"
const str2 = "21"
const str3 = str2 + "000" + str1.slice(2)

相关问题