在正则表达式javascript中只排除0
Exclude only 0 in regular expression javascript
我想创建一个正则表达式,它将接受一到十个数字值,但它不应该接受如果只提供0
例如1 is valid input
1111123455 is valid input
01 is valid input
010 is valid input
0000 is not valid input
0 is also not valid input
0000000000 is also not valid input
i tried regex
^([0-9]{1,10}|)$
接受十个数字,但如何避免只有0
你可以使用否定的forward:
^(?!0+$)[0-9]{1,10}$
查看regex演示
细节:
-
^
-字符串 起始 -
(?!0+$)
-在字符串 结尾之前不允许只有零 -
[0-9]{1,10}
- 1 ~ 10位 -
$
-字符串结束
:也允许空值,使用0
作为限定词的最小参数:
^(?!0+$)[0-9]{0,10}$
^
请参阅Negative Lookahead如何工作(更多信息在这里)以了解更多关于(?!0+)
如何在此模式下工作的信息。简而言之:在字符串的开始,我们检查整个字符串是否为零。如果字符串的开始后有0或更多,则匹配失败。否则,匹配1(或0)到10位数字并返回结果。
您可以像这样使用Number函数检查。不需要正则表达式
var str = '10001';
console.log(Boolean(Number(str))); This returns true if string does not contain only zeros and false if string contains only zeros
您可以使用regex作为:^(?=.*[1-9])'d{1,10}$
解释:
^
断言字符串的起始位置
(?=.*[1-9])
Positive Lookahead -断言下面的正则表达式可以是*匹配任何字符(换行符除外)在零次和无限次之间,尽可能多地给予[贪][1-9]匹配1- 9a下面列表中的单个字符1到9之间的单个字符
'd{1,10}
匹配数字[0-9]量词:{1,10}在1到10之间在需要的时候,尽可能多地给予回报[贪]
$
断言字符串末尾的位置
console.log("1".match(/^(?=.*[1-9])'d{1,10}$/));
console.log("1111123455".match(/^(?=.*[1-9])'d{1,10}$/));
console.log("0000".match(/^(?=.*[1-9])'d{1,10}$/));
console.log("0".match(/^(?=.*[1-9])'d{1,10}$/));
console.log("0000000000".match(/^(?=.*[1-9])'d{1,10}$/));
相关文章:
- 如何排除此正则表达式中的空白匹配项
- Javascript和PHP正则表达式来排除不同的字符
- 空格上的正则表达式匹配 - 排除多组字符之间的空格
- 英国排除了邮政编码正则表达式失败
- 正则表达式负前瞻以排除字符串
- 正则表达式用于匹配段落中的单词,但排除内部 HTML 标记
- 正则表达式 - 排除括号和带有特殊键的括号
- 正则表达式排除某些标签
- 如何使用正则表达式排除减号
- 用于排除具有多行匹配的某些字符的正则表达式
- 正则表达式,以包括所有特定模式并仅排除一种情况
- 匹配字符串中的一个模式但排除另一个模式的Javascript正则表达式
- JS 正则表达式以排除一系列特定数字
- 排除带有特定数字的输入字符串的正则表达式
- 排除特定位的正则表达式
- 在正则表达式javascript中只排除0
- 排除组中的字符(正则表达式)
- 用于关键事件输入验证的Javascript正则表达式故障排除帮助
- 从另一个正则表达式中排除一个正则表达式
- 在字符串的同一部分上排除正则表达式