从0-100之间的小数初识正则表达式

前端之家收集整理的这篇文章主要介绍了从0-100之间的小数初识正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

笔者在在写javaWeb的前端部分时,要求写一个输入框输入一个0到一百的小数,于是去网上找正则表达式的例子,可是找来找去都不正确,劳心费力,一怒之下决定自己去写一个。以下为个人的一些笔记。

先放结果:自己写的正则表达式和测试结果


/^(100|(([1-9]){1}[0-9]?|0{1})((\.)([0-9]){1,2})?)$/

现在逐步解释这个正则表达式:

首先我们在代码中使用时需要用两个“/”包围起来,个人理解类似于字符串的双引号。在表达式中,表达式元素一般采用【匹配字符+限定条件】的方式连在一起组成正则表达式,少数几个采用【限定条件+匹配字符】的方式。

  • “^”表示以右边的字符开头,同理"$"表示以左边的字符为结尾。
  • 表达式中的括号和四则运算的括号一致,表示优先级,“|”为“或”符号。
  • [1-9]表示1到9的整数,{n}(正整数)表示匹配n个前面的字符,{n,m}(均为正整数)表示最少匹配n个最多匹配m个字符,那么[1-9]{1}的意思就是被匹配的字符是一个1-9之间的整数。
  • “?”表示可以有一个有或者没有前面的字符,“([1-9]){1}[0-9]?|0{1}”限定的就是0到99的整数
  • 和java一样,在正则表达式中,特殊字符需要在前面加转义符号,即用“/.”来表示小数点。结合前面的解释,“([0-9]){1,2})”表示小数点后面的以为或两位小数,“((\.)([0-9]){1,2})?”则表示有无这些小数部分均可。
  • 在最后面加一个“$”表示以前面的字符结尾。如果不加,那么形如String s = "11.22werdSAEf"的字符串可以匹配前面的小数也可以通过。

在Jsp中的用法为:

//boolean test(value)方法进行匹配,如果value能够匹配成功则返回true
		var newPar=/^(100|(([1-9]){1}[0-9]?|0{1})((\.)([0-9]){1,2})?)$/;
    if(newPar.test(myString)){
    	//TODO...
    }

以上仅为个人在解决这个0到100小数的过程中所用的正则表达式记录,写得很初级,没有使用“/d”或者“*”等复杂符号。

学习参考网站:正则表达式教程
截图所用测试网站: Regexper

感谢阅读。

猜你在找的正则表达式相关文章