簡體   English   中英

選擇所有非數字字符,單點和破折號除外

[英]Select all non-digit characters except single dot and single dash

我正在尋找JavaScript中的正則表達式,它將選擇除單個點和單個破折號之外的所有非數字字符。 我嘗試了[^0-9\\.\\-]+但沒有選擇多個點或破折號。 所以它應該選擇..但不要.

我的用例是數字輸入驗證。 用戶可以鍵入任何數字或單點或單破折號。 我將用一個空字符串替換無效的輸入。

您應該可以使用以下內容:

(?:[^0-9\.\-]|\.{2,}|-{2,})+

它匹配不是數字也不是的字符. -或兩個或多個的序列. -

將該替換置於(?:non-capturing group)中,以便用量詞+重復該操作,而不會創建無用的捕獲組。

請注意,您不必逃避. 在字符類也不是-在字符類的第一或最后一個位置: (?:[^0-9.-]|\\.{2,}|-{2,})+應該工作一樣好。

Regex101樣本

暫無
暫無

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

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