一、方法一:正则表达式
要判断一个字符串输入的数据是否超过八位,需要用正则表达式来进行匹配,这里可以在线学习正则网站,可以练练,里面还有一些语法什么的。
毕竟比较赶时间,写的仓促,所以很多地方还是可以优化的。有什么不对的话还请大家多多体谅,谢谢啦 😀 😀 😀 。
1.匹配公式和单个数据
regexBit
用于匹配包含数字和运算符的字符串,例如 12345678
或者 12345678+12345678
,不匹配数据超出八位数的情况。
var regexBit = /^[-]?(\d{8}|[\d\.]{9}|\d{8}[+\-*/]\d{8}|[\d\.]{9}[+\-*/][\d\.]{9})$/;
这里简单讲解一下该正则表达式各个部分的作用:
/^[-]?)$/
:
字符 | 描述 |
^ |
表示从匹配输入字符串的开始位置,除非在方括号表达式中使用, 当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合, |
$ |
匹配输入字符串的结尾位置; |
[-]? |
表示匹配可选的负号(-) |
\d{8}
:
字符 | 描述 |
\d{8} |
匹配任意的八个数字 |
[\d\.]{9}
:
字符 | 描述 |
[\d\.]{9} |
匹配带有小数点的八个数字,加上小数点字符,所以长度为9, 用于匹配 0.1234567 ,1234567.8 等情况; |
\d{8}[+\-*/]\d{8}
:
字符 | 描述 |
\d{8}[+\-*/]\d{8} |
匹配八个数字+四个运算符中的一个+八个数字,例如:12345678+12345678 |
[\d\.]{9}[+\-*/][\d\.]{9}
:
字符 | 描述 |
[\d\.]{9}[+\-*/][\d\.]{9} |
匹配带有小数点的八位数字+基础运算符之一+带有小数点的八位数字,例如:0.1234567+0.1234567 |
2.对数据进行判断是否能展示
使用上面正则表达式可以排除输入单个数据或者公式输入数据超过8位的情况,而只匹配包含八位数字、小数点和运算符的运算表达式,从而判断输入字符串是否为有效的运算表达式。
/** * @author CSH * @function 函数功能:对数据进行判断最大位数是否超过八位 * @param {string} displayNumber [需要判断的数据] */ function isCalcDataBit (displayNumber) { return regexBit.test(displayNumber) && !isNaN(eval(displayNumber)); }
运行测试:
// 示例用法 console.log(isCalcDataBit ("12345678")); // true console.log(isCalcDataBit ("0.1234567")); // true console.log(isCalcDataBit ("1234")); // false console.log(isCalcDataBit ("42")); // false console.log(isCalcDataBit ("-3")); // false console.log(isCalcDataBit ("12345678+12345678")); // true console.log(isCalcDataBit ("1.2345678+123456.78")); // true console.log(isCalcDataBit ("1.3333")); // false
总结
感谢观看,如果有帮助到你,请给文章点个赞和收藏,让更多的人看到。🌹 🌹 🌹
也欢迎你,关注我。👍 👍 👍
原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!