为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬指点哈!关于正则校验数字问题 js十分感谢

求大佬指点哈!关于正则校验数字问题 js十分感谢

慕尼黑5688855 2019-08-06 00:06:55
下面的正则是校验数字的,如果输入其它非法字符或者文字的话会匹配为空字符串,但遇到下面几种情况就不行了,有大神可以把下面正则改进下吗或者有其它更好的正则表达式吗letnum_1='--150'letnum_2='--150..55'letnum_3='150..15'num_1.replace(/[^\-?\d.]/g,'')//--150想要的结果是-150num_2.replace(/[^\-?\d.]/g,'')//--150..55想要的结果是-150.55num_3.replace(/[^\-?\d.]/g,'')//150..15想要的结果是150.55
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

没理解需求。。。--150..55还变成--15055?
以下我想的实现方式,你可以参考下
letnum='--150..55';
letre=/\-?\d+\.?/;
//获取开头
letresult=re.exec(num)[0];
//将开头替换成#
num=num.replace(/\-?\d+\.?/,'#')
//将所有非数字替换成空
num=num.replace(/[^\d]/g,'')
//把开头拼接进去
result=result+num;
                            
查看完整回答
反对 回复 2019-08-06
?
莫回无

TA贡献1865条经验 获得超7个赞

functionformat(value=``){
returnvalue.replace(/(\D)\1+/gu,`$1`);
}
format(`--150`);
//>"-150"
format(`--150..55`);
//>"-150.55"
format(`150..15`);
//>"150.15"
                            
查看完整回答
反对 回复 2019-08-06
  • 2 回答
  • 0 关注
  • 315 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信