正则表达式:网店中折扣价格-要求大于0小于10,且允许保留一位小数点
- 需求:网店中折扣价格-要求大于0小于10,且允许保留一位小数点
- 需求分析:
1,)取值范围为(0,10),两端都是开区间;
2,)“可保留一位小数”,可以不包含小数,但如果包含小树就一定要仅包含一位小数。
- 开发(javascript下):
- 第一步:0-10包含一位小数:/^\d(\.\d)?$/
- 第二步:排除特殊的0和0.0和10,这样的写法为:
/^[^0][^0.0][^10]\d(\.\d)?$/
测试下:是否是我们想要的结果呢?
- 答案:no
具体原因,我也解释不清。
- 换种思路:
既然0、0.0及10不是我们想要的,我们是否应该可以拆分为两种:
1,)[0.1,0.9]拆分为一组可取值的配置集合;
2,)[1.0,9.9]拆分为第二组可取值的配置集合;
3,)两个集合拼接在一起不就是我们想要结果。
- 开发:
- [0.1,0.9]拆分为一组可取值的配置集合-javascript正则为:/^(0\.[1-9]{1})$/
- [1.0,9.9]拆分为第二组可取值的配置集合-javascript正则为:/^([1-9]{1})(\.\d{1})?$/
- [0.1,9.9]正则为:/^((0\.[1-9]{1})|(([1-9]{1})(\.\d{1})?))$/
- 经过测试:/^((0\.[1-9]{1})|(([1-9]{1})(\.\d{1})?))$/ 测试通过。
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。