我要求输入骰子游戏。 输入的数字是否可以被10整除是非常重要的。
对于以零结尾的数字,我有\ d + 0。
我需要一个不以零结尾的数字。
提前致谢。
答案 0 :(得分:15)
也许这会成功
\d*[1-9]
答案 1 :(得分:12)
答案 2 :(得分:5)
\d+[1-9]
我认为应该有效。
这将匹配至少一个数字后跟一个非零数字。
但是,你很可能需要以某种方式嵌入它,或者通过锚定它:
^\d+[1-9]$
验证完整字符串是否只包含该数字(但是您也可以将所述字符串转换为数字并执行mod 10)。
你当前的方式(以及你问题中的表达式)它会匹配像1203
这样的数字而没有两个表达式的问题,因为正则表达式匹配子串除非你锚定它们(在某些环境中,默认情况下会锚定它们 - 我认为Java会这样做。)
此功能仅适用于至少两位数,您在问题中发布的表达式也是如此。我认为这是故意的。如果没有,那么+
在两种情况下都应该是*
。
答案 3 :(得分:2)
我认为
\d*[1-9]
效果更好。
答案 4 :(得分:2)
我认为(d%10 == 0)是测试可分性10的更好方法。
答案 5 :(得分:1)
Divisibility技巧对于不是小数的整数有效。
如果有人要验证这一点怎么办?
123.120
以非重要零结束。
因此123.12 / X和123.120 / X给出相同的结果 123.12%X和123.120%X相同 (这最后一个是无效的操作,因为值不是一个整数,所以不能得到浮点数/模数)
模块只能用于整数值(整数/整数)。
也有人可以试图寻找:
AnyTextWithNumbersNotEndingOnZero_0 <--- Not valid
AnyTextWithNumbersNotEndingOnZero <--- Valid
所以最好的更清楚可以像这样:
/[0-9]*0$/
希望有所帮助。
啊!如果想要字母和数字但最后不是零:
/[0-9A-Za-z]*0$/
等
答案 6 :(得分:1)
如果您想使用正则表达式,请尝试使用此正则表达式
^([1-9]+)$
使用纯JavaScript var num = temp;
if(temp % 10 !==0){
//your code
}
答案 7 :(得分:0)
你可以尝试这个排除0
\d+[^0]?