小编典典

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

all

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

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

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

有任何想法吗?

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


阅读 54

收藏
2022-06-30

共1个答案

小编典典

最好的方法(我见过)是

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

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

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

2022-06-30