regex 接受错误值的HTML输入模式[重复]

qvtsj1bj  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(86)

此问题在此处已有答案

Why do regex constructors need to be double escaped?(5个答案)
昨天关门了。
我试着创建一个HTML输入(使用JavaScript),只要它包含“[...]”并且超过5个字母,就可以使用任何字符。例如,“我的狗的名字是[...],他很傻”。这是我的js代码。

const sentenceInput = document.createElement('input');
        sentenceInput.minLength = '5';
        sentenceInput.pattern = ".*\[\.\.\.\].*";
        sentenceInput.required = true;
        sentenceInput.title = 'Include [...]';

问题是输入允许用户提交任何超过5个字符和“[.”而不是“[...]"的内容。发生了什么,我该如何修复这个问题?
我试过用

sentenceInput.pattern = ".*\[\.{3}].*";

或者甚至

sentenceInput.pattern = "/.*\[\.{3}].*/g";

都不管用。

ukdjmx9f

ukdjmx9f1#

将模式更改为".*\\[\\.\\.\\.\\].*"".*\\[\\.{3}\\].*"将获得所需的行为:
第一个
特殊字符[.]需要用\ * 转义两次 *,因为它们首先在JavaScript中解释,然后在提交事件由回车键触发之后解释。

相关问题