[英]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.