我嘗試創建一個 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";
都沒有用。
uj5u.com熱心網友回復:
將您的模式更改為".*\\[\\.\\.\\.\\].*"或".*\\[\\.{3}\\].*"將使您獲得所需的行為:
const inp = document.createElement('input');
Object.entries({
size: '30',
minLength: '5',
pattern: ".*\\[\\.{3}\\].*",
required: true,
title: 'Include [...]',
placeholder:'Submit your sentence with <enter>'
}).forEach(([k,v])=>inp[k]=v);
document.frm.append(inp);
<form name="frm"></form>
特殊字符[,.和]需要轉義兩次,\因為它們首先在 JavaScript 中解釋,其次是在 enter 鍵觸發提交事件之后。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/532651.html
