1

ユーザーがテキストを入力できるテキストエリアがあります。

現在の行が 3 つのスペースで始まり、ユーザーが Enter キーを押すと、自動的に 3 つのスペースが挿入され、スペースの直後にカーソルが設定されます。(前後にテキストがある場合があります)

JavaScript でそのようなパターンを検出するにはどうすればよいですか?

4

1 に答える 1

1

テキストエリア内のキャレット位置、先頭からの文字列では、ユーザーが Enter キーを押したときにキャレットがどこにあるかを調べて、左に 3 つのスペースと改行があるかどうかを確認する方法を説明しています。

テキストエリアにキーを入力Enterすると、テキストエリアでキーを検出してアクションを実行する方法が説明されます。

リスナーを接続し、キャレットの位置がcaretであることを知ったら、次のようなことができます

if (/(?:^|[\r\n])   (?:[^\r\n ][^\r\n]*)?$/
    .test(myTextArea.value.substring(0, caret)) {
  ...
}

現在の行の先頭にちょうど 3 つのスペースがある場合にアクションを実行します。

3 つの余分なスペースを挿入するには、次のようにします。

myTextArea.value = myTextArea.value.substring(0, caret)
    + "\n    " + myTextArea.value.substring(caret);
于 2013-02-19T01:04:30.180 に答える