我找到了一个可行的脚本,但我不知道它是如何工作的。
这个例子使用的split()
方法给了我痛苦的头痛。有没有人知道split()
方法在这个例子中是如何工作的?我们可以将数字作为第一个参数传递给split()
方法吗?这是一个分隔符,如果是为什么它没有用引号括起来?
脚本
function noNumbers(field) {
for ( var i = 0; i < 10; i++ ) {
field.value = field.value.split(i).join("");
}
}
HTML
<form>
Type some text (numbers not allowed):
<input type="text" onkeyup="noNumbers(this);" />
</form>
答案 0 :(得分:1)
基本上noNumbers
接受字符串并将其拆分为给定令牌的数组,在这种情况下,数字存储在i
中。然后,通过在部件之间使用空字符串再次连接数组。
由于您对所有数字执行此操作,因此结果不包含任何数字。
"1213Test".split(0).join("")
== ["1213Test"].join("")
== "1213Test"
"1213Test".split(1).join("")
== ["","2","3Test"].join("")
== "23Test"
"23Test".split(2).join("")
== ["","3Test"].join("")
== "3Test"
"3Test".split(3).join("")
== ["","Test"].join("")
== "Test"
如果您感到困惑,因为i
是一个整数:split
将字符串作为参数,因此split(i)
与split(i.toString())
相同。
答案 1 :(得分:0)
本例中的脚本循环使用小数位数0, 1, 2...9
,并为每个数字生成split(digit).join()
。 split方法返回没有数字的字符数组。像:
"This 1s an example".split(1)
["This ", "s an example"]
使用join("")
它只是将数组连接回字符串:
["This ", "s an example"].join("")
"This s an example"