我需要一个html输入才有一些限制:
注意:必须允许重音大部分字符(ç,á,ê等...)
现在我刚刚实施了最后一条规则(不允许数字):
/^([^0-9]*)$/
如果你能告诉我这个在html输入上实现的话就会很棒。
答案 0 :(得分:0)
非空格和非数字非常简单 - ^[^\s0-9]+$
。可以使用否定先行^(?!.*(.)\1{3})
实现非重复条件:
^(?!.*(.)\1{3})[^\s0-9]+$
演示:https://regex101.com/r/E02Hrh/3
请注意,除了非拉丁字母外,它还会允许使用特殊字符(?
,!
,@
等),但问题中并未明确禁止这些字符。
答案 1 :(得分:0)
对于非四重奏,就像德米特里所说的那样
通过负向前瞻很容易做到。 (?!.*(.)\1{3})
对于特殊的utf字符,您可以添加unicode范围
^(?!.*(.)\1{3})[a-zA-Z\u00c0-\u00ff]+$
或者添加您期望的范围,例如从supplement block
添加^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$
html输入和正则表达式模式验证的示例
<form action="javascript:console.log('ok')">
letters: <input type="text" name="letters"
pattern="^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$" title="Letters">
<input type="submit">
</form>