我正在寻找JavaScript中的正则表达式,它将选择除单个点和单个短划线之外的所有非数字字符。我试过[^0-9\.\-]+
,但它没有选择多个点或短划线。因此,它应该选择..
而不是.
我的用例是数字输入验证。用户可以键入任何数字或单点或单点划线。我将用空字符串替换无效输入。
答案 0 :(得分:2)
您应该可以使用以下内容:
(?:[^0-9\.\-]|\.{2,}|-{2,})+
匹配不是数字,.
或-
的字符,或两个或更多.
或-
的序列。
将替换放在(?:non-capturing group)
内,以便使用量词+
重复它,而不会创建无用的捕获组。
请注意,您不必在角色类中转义.
,也不必在角色类的第一个或最后一个位置转换-
:(?:[^0-9.-]|\.{2,}|-{2,})+
应该像好。