正则表达式判定保留2位小数

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery.min.js" ></script>
</head>
<body>
<li><a class="ba">6.88888888</a></li>
<script>
var b=$('.ba').html();
onload = function(){     
var a = b;
    var aNew;
   var re = /([0-9]+\.[0-9]{2})[0-9]*/;
   aNew = a.replace(re,"$1");
    $(".ba").html(aNew)
  } 
</script>
</body>
</html>
如果不想使用正则表达式来验证用户输入的小数是否合规,我们可以利用 Python 的内置异常处理机制以及字符串操作来进行判断。以下是详细说明和代码实现: ### 实现步骤: 1. 提示用户输入一个带有小数点的浮点数。 2. 检查输入中是否存在一个小数点(且仅存在一个)。 3. 确保除了小数点外的所有字符都是数字(或允许负号在最前面)。 4. 如果检测到科学计数法(如 `e` 或 `E`),判定为非法输入。 5. 若以上所有条件都满足,则将输入转换为浮点数;否则提示用户重新输入。 --- ### 示例代码: ```python def is_valid_float(input_str): # 判断是否包含恰好一个小数点 if input_str.count('.') != 1: return False # 分割成整数部分和小数部分 integer_part, fractional_part = input_str.split('.') # 整数部分可以为空或者只有数字(也可以带负号) if not (integer_part.startswith('-') and integer_part[1:].isdigit()) \ and not integer_part.isdigit() \ and not integer_part == '': # 允许小数形式“.12” return False # 小数部分不能为空并且全是数字 if not fractional_part.isdigit(): return False # 排除科学计数法的情况 if any(char in ('e', 'E') for char in input_str): return False return True # 主循环 while True: user_input = input("请输入一个小数(例如 -123.45):").strip() if is_valid_float(user_input): valid_number = float(user_input) print(f"您输入的有效小数是:{valid_number}") break else: print("输入无效,请确保只输入标准小数形式!") ``` --- ### 工作原理: 1. **检查小数点的数量**:通过 `.count('.')` 函数确认输入中小数点的个数必须是 1。 2. **分割字符串并验证两部分合法性**: - 对于整数部分,可能是空串、纯数字,或者是带负号的数字序列; - 对于小数部分,不允许为空,并且所有的字符都需要是数字。 3. **排除科学计数法**:遍历整个输入字符串,若发现有字母 `e` 或者 `E` 存在,则认为这是科学计数表示法而返回错误。 4. 循环反复直到获取有效的数据为止。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值