【问题标题】:Detection for auto indentation in TextArea with JavaScript使用 JavaScript 在 TextArea 中检测自动缩进
【发布时间】:2023-03-31 00:55:02
【问题描述】:

我有一个文本区域,用户可以在其中输入文本。

如果当前行以 3 个空格开头,用户按回车,它会自动插入 3 个空格并将光标设置在空格后面。 (前后可能有文字)

如何使用 JavaScript 检测这种模式?

【问题讨论】:

标签: javascript html


【解决方案1】:

Caret position in textarea, in characters from the start 解释了如何确定用户按回车键时插入符号的位置,以便您检查左侧是否有三个空格和一个换行符。

Enter key in textarea 解释了如何检测文本区域中的 Enter 键并采取行动。

一旦你连接了一个监听器并且知道插入符号的位置是caret,你可以做类似的事情

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

在当前行的开头正好有三个空格时采取行动。

要插入 3 个额外的空格,你可以这样做

myTextArea.value = myTextArea.value.substring(0, caret)
    + "\n    " + myTextArea.value.substring(caret);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多