2017-05-16 62 views
-1

我需要一個HTML輸入有一些限制:正則表達式來限制的若干方案

  • 不要讓空間
  • 不要讓同樣的字符是連續3次以上
  • 不允許號,0-9

注:必須允許重音大多字符(C,A,E等)

現在我剛剛實施的最後一條規則(不允許號):

/^([^0-9]*)$/ 

如果你能告訴我這上的HTML輸入將是巨大的落實。

+0

編輯@TimBiegeleisen,謝謝 –

+0

我想你會需要週轉來做到這一點,我不確定HTML輸入正則表達式是否支持這一點。 –

+0

*「必須允許特殊的utf-8字符(ç,á,ê等等)」*太寬泛,請參閱unicode表並清楚說明允許或不允許使用哪種字符。 –

回答

0

非空格和非數字非常簡單 - ^[^\s0-9]+$

^(?!.*(.)\1{3})[^\s0-9]+$ 

演示:https://regex101.com/r/E02Hrh/3

注意,隨着非拉丁字母它將允許特殊字符(?!@等非重複的情況可能與負先行^(?!.*(.)\1{3})實施)但這些問題中沒有明確禁止。

0

對於非quadrupal重複它就像德米特里說。
易於通過負面預測。 (?!.*(.)\1{3})

對於特殊UTF字符,你可以從supplement block

^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$ 

例如使用HTML輸入添加一個Unicode範圍

^(?!.*(.)\1{3})[a-zA-Z\u00c0-\u00ff]+$ 

或者添加你所期望的範圍(一個或多個),例如和正則表達式模式驗證

<form action="javascript:console.log('ok')"> 
 
letters: <input type="text" name="letters" 
 
pattern="^(?!.*(.)\1{3})[a-zA-ZÀ-ÿ]+$" title="Letters"> 
 
<input type="submit"> 
 
</form>

+0

無論出於何種原因都低估了。謝謝,現在我的聲譽再次變成了模數10。 – LukStorms

+0

爲了更好地瞭解unicode表,我建議這個有用的網站:http://utf8-chartable.de/ –