簡體   English   中英

正則表達式只允許一個特殊字符?

[英]Regular expression to allow only one special character?

我正在嘗試為輸入中只允許一次撇號,短划線和句點的名稱添加驗證。

我嘗試使用以下表達式:

name= /^[a-zA-Z-,]+(\-\.\'\s{0,1}[a-zA-Z-, ])*$/

但是這些值只接受字母后的一個字符。
如何指定在正則表達式中只允許一次的字符。
我的表達中有什么錯誤?

編輯:

^[-'.a-zA-Z0-9][a-zA-ZÀ-ÿ\-\.\'\s|]{0,25}$

但這允許特殊字符允許多次。

我正在嘗試為輸入中只允許一次撇號,短划線和句點的名稱添加驗證。

你可以使用這個基於前瞻性的正則表達式:

^(?=[a-zA-Z,]*['.-][a-zA-Z,]*$)[a-zA-Z,'.-]+$

RegEx演示

這里(?=.*?['.-][^'.-]*$)是一個先行,它確保在輸入中只允許一個撇號或破折號OR時段。

使用可選的量詞?

^[a-zA-Z-,]*[-.'\sÀ-ÿ|]?[a-zA-Z-,]*$

這是一個UPDATED正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM