pattern属性
Javascriptの正規表現で、特定の文字列を含まない、3文字の文を指定したいのですが、どのようにすればいいのかわかりません。
他の回答の通り、JavaScriptからご質問の要件で文字列判定を行う場合、正規表現を使わないのが基本的には妥当だと思います。
が、<input pattern>
を使用している場合は正規表現の採用を検討する余地があります。
HTML
1<form>
2 <input type="text" maxlength="3" pattern="(?!abc).{3}" required>
3 <input type="submit" value="送信">
4</form>
submit時のバリデーションでよければ、JavaScriptコードをなくすことが可能です。
入力時のバリデーションを追加する場合は、inputイベントで判定を追加します。
JavaScript
1document.querySelector('input[type=text]').addEventListener('input', event => event.target.reportValidity(), false);
任意の一文字
蛇足ですが、JavaScriptコード上で「任意の一文字」を指定する場合は、改行にマッチさせる方法として、/./s
もしくは、/[\s\S]/
と記述する方法があります。
Re: penguin123401 さん