JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位

请添加图片描述

  • 所属专栏:【JavaScript随手笔记】

  • 作  者:我是夜阑的狗

  • 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信

文章目录

  • 前言
  • 一、方法一:正则表达式
    • 1.匹配公式和单个数据
    • 2.对数据进行判断是否能展示
  • 总结


前言

  大家好,又见面了,我是夜阑的狗,本文是专栏【JavaScript随手笔记】专栏的第6篇文章;
  今天的需求是要判断字符串的位数是否超过八位,其中可以包括运算公式,而且现在最输入限制为 17 位,8位数字 + 运算符 + 8位数字(负数额外考虑);
  专栏地址:【JavaScript随手笔记】 , 此专栏是我是夜阑的狗对JS数据处理的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴。
  如果文章有什么需要改进的地方还请大佬不吝赐教。


一、方法一:正则表达式

  要判断一个字符串输入的数据是否超过八位,需要用正则表达式来进行匹配,这里可以在线学习正则网站,可以练练,里面还有一些语法什么的。
  毕竟比较赶时间,写的仓促,所以很多地方还是可以优化的。有什么不对的话还请大家多多体谅,谢谢啦 。

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.12345671234567.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

总结

  感谢观看,如果有帮助到你,请给文章点个赞和收藏,让更多的人看到。

  也欢迎你,关注我。

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!! 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

更多专栏订阅:

  • 【LeetCode题解(持续更新中)】
  • 【Java Web项目构建过程】
  • 【数字图像处理】
  • 【JavaScript随手笔记】
  • 【大数据学习笔记(华为云)】
  • 【程序错误解决方法(建议收藏)】
  • 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

你可能感兴趣的:(JavaScript笔记,javascript,正则表达式,开发语言)