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

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

烙印99

没理解需求。。。--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;

莫回无

functionformat(value=``){returnvalue.replace(/(\D)\1+/gu,`$1`);}format(`--150`);//>"-150"format(`--150..55`);//>"-150.55"format(`150..15`);//>"150.15"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript