1 回答

TA贡献1851条经验 获得超4个赞
考虑以下代码:
function genId(seed) {
var result = new Array(4);
for (var i = 0; i < 4; i++) {
result[i] = seed[i] || " ";
}
return result.join("");
}
function genName(seed) {
var result = new Array(45);
for (var c = 0; c < 45; c++) {
result[c] = seed[c] || " ";
}
return result.join("");
}
document.getElementById("genHead").addEventListener("click", function() {
var i = document.getElementById("hid").value;
var n = document.getElementById("hname").value;
var header = genId(i) + genName(n);
document.getElementById("results").innerHTML = header;
});
#results {
font-family: monospace;
border: 1px solid #ccc;
display: inline-block;
}
<p>ID: <input type="text" id="hid" /></p>
<p>Name: <input type="" id="hname" /></p>
<button id="genHead">Generate Header</button>
<div id="results"></div>
在这个例子中,我创建了一个特定数量字符的数组。无论如何,字符串都被认为是一个字符数组。我$nbsp;用来表示 HTML 中的空格,但您可以使用' '或" "。
总会有结果,因为result[c] = seed[c] || " ";如果seed那个位置有字符,就会result在同一个位置输入。否则它将进入 No Break Space 或您想要的字符。
你也可以这样做:
function formatText(t, n, c) {
if(t == undefined){
return "";
}
if(n == undefined){
n = 45;
}
if(c == undefined){
c = " ";
}
var r = new Array(n);
for (var i = 0; i < n; i++) {
r[i] = t[i] || c;
}
return r.join("");
}
然后像这样使用:
var i = formatText("12", 4, " ");
var n = formatText("test", 45, " ");
希望这可以帮助。
添加回答
举报