创建一个可变长度的字符串,用重复的字符填充

2022-08-30 01:15:51

因此,我的问题已被其他人以Java形式问过:Java - 创建一个具有指定长度并填充特定字符的新字符串实例。最佳解决方案?

. . .但我正在寻找它的JavaScript等效物。

基本上,我想根据每个字段的“maxlength”属性,用“#”字符动态填充文本字段。因此,如果输入有 ,则该字段将填充“###”。maxlength="3"

理想情况下,会有类似Java的东西,但是,到目前为止,我能想到的最好的选择是遍历并附加“#”字符,一次一个,直到达到最大长度。我无法摆脱这样一种感觉,即有比这更有效的方法可以做到这一点。StringUtils.repeat("#", 10);

有什么想法吗?

仅供参考 - 我不能简单地在输入中设置默认值,因为“#”字符需要在焦点上清除,并且,如果用户没有输入值,则需要在模糊时“重新填充”。这是我关心的“笔芯”步骤


答案 1

做到这一点的最好方法(我见过的)是

var str = new Array(len + 1).join( character );

这将创建一个具有给定长度的数组,然后将其与给定的字符串连接以重复。无论元素是否分配了值,该函数都遵循数组长度,并且未定义的值呈现为空字符串。.join()

您必须将 1 添加到所需的长度,因为分隔符字符串位于数组元素之间


答案 2

试试这个 :P

s = '#'.repeat(10)

document.body.innerHTML = s