求仅允许数字、排除+的正则表达式(已尝试多组正则仍无效)
解决仅允许数字、排除+的正则表达式问题
正确正则表达式
根据需求,以下是符合要求的正则:
- 匹配至少1位纯数字(不允许空、不允许任何+或其他字符):
^\d+$或者^[0-9]+$ - 如果需要允许空字符串(但仍不允许包含+):
^\d*$或者^[0-9]*$
分析你之前的问题
关于
^[0-9]<em>$和^\d</em>$:
你这里的<em>是HTML格式标签,会被正则当作普通字符处理,导致正则实际要匹配的是「以数字开头,以</em>结尾」的字符串,完全没起到限制中间字符的作用,这才会允许输入+、++。正确的写法应该去掉这些标签,写成匹配整个字符串的单数字正则^[0-9]$,但这个只能匹配单个数字,无法匹配多位数字。关于
^[^+]*$:
这个正则的意思是「匹配不包含+的任意字符序列(包括空、字母、符号等)」,它确实会排除+,但同时也会允许非数字的其他字符(比如字母、-等),不符合你“仅允许数字”的需求。
内容的提问来源于stack exchange,提问作者yvdevy
相关产品推荐
相关产品推荐

