繁体   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