js 正则 正确的书写逻辑 中 德文小数点区别

168 阅读1分钟
项目中if else 真的写吐了。
我们用正则表达式?
不会用,不会写,还是用if else吧
所以该怎么写正则呢?
项目需求
中英文 小数点用 ‘.’ ,德文环境用 ‘,’ 两者不能同时存在。
这很简单啊,if else 判断应该不难
正则呢?
确定2个表达式
满足,的正则 \^[0-9,]+$\
满足.的正则 \^[0-9.]+$\
用 | 何并他们
\^[0-9,]+$|^[0-9.]+$\
可是我们 不要 ',1212' '.1234' 情况。要把‘,’前面数字提取出来
\^[0-9]+[,]*[0-9]*$|^[0-9]+[,]*[0-9]*$\
'11,' '223.' 情况 不行,还要改 把 ‘,’以及后面数字放在子条件中 如()中内容
\^[0-9]+([,][0-9]+)*$|^[0-9]+([,][0-9]+)*$\
如输入用户输入 (123,223,444) 还会验证通过,要求肯定只显示一次,不行
/^[0-9]+([,][0-9]+)?$|^[0-9]+([.][0-9]+)?$/
这就好了,最后加一个限制小数位数 12位 如(1.211.9)
/^[0-9]+([,][0-9]{1,2})?$|^[0-9]+([.][0-9]{1,2})?$/
完结,撒花