-1

動作するスクリプトを見つけましたが、どのように動作しているかわかりません。

この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>
4

2 に答える 2

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())です。

于 2012-11-12T07:40:34.283 に答える
0

この場合のスクリプトは 10 進数をループし、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"
于 2012-11-12T07:42:55.767 に答える