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

在线等!javascript正则校验问题求教

在线等!javascript正则校验问题求教

HUWWW 2019-06-18 09:42:48
下面的正则是校验数字的,如果输入其它非法字符或者文字的话会匹配为空字符串,但遇到下面几种情况就不行了,有大神可以把下面正则改进下吗或者有其它更好的正则表达式吗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 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

没理解需求。。。--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-06-18
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

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

添加回答

举报

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