Regular expression in Javascript for a string which have ONLY numbers & should not have any characters at any position except numbers
问题是:我在JSP文件中有一个文本区域,从这里我通过JavaScript读取值,并验证输入的值是否是"1-25之间的数字"。下面是我的解释。
1)我的字符串只能包含[1-25]之间的数字
2)除了数字[1-25]之外,它不应该在字符串中的任何位置有任何字符(SPL字符/符号)。
例如:
1 2 3 4 | 12-allowed (less than 25 and greater than 1) show success_message 1@#4- not allowed, show warn_message @14#- not allowed, show warn_message !$%12()*& - not allowed even though number is less than 25 and greater than 1, since it contains characters apart from numbers, show warn_message. |
这是我试过的
文件.jsp
1 | <input id="text_area" name="posArea" type="text"/> |
号
我的文件.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var pos= ($('#text_area').val()); var reg="^[1-25]$"; if(pos.match(reg)){ $('#warn_message').show(); return false; } if(isNaN(pos)){ $('#warn_message').show(); return false; } else{ $('#success_message').show(); } |
这是我输入的任何号码的警告信息,有人能发现我的错误吗?谢谢你的帮助。如果你不理解我的问题,请发表评论
regex
对于整数,可以使用这个regex:
它不会分数,但我想你对它们不感兴趣。
见演示。
1 | ^(?:[1-9]|1\d|2[0-5])$ |
号
试试这个。看演示。
网址:https://regex101.com/r/sj9gm7/17
您可以在不使用regex的情况下执行此操作:
1 2 3 4 5 6 7 8 | function checkNumber(number) { if(isNaN(number)) { return false; } else { number = parseInt(number) return number > 1 && number < 25 } } |