是否有任何可能的方法将否定集中的字符限制为单个实例?
我正在处理的事情: [^0-9\.]
这不会匹配数字和小数,但是有什么方法可以限制为单个小数吗?
所以它不会匹配:
84.34356
.3948
但会匹配:
86..3232
^
84.54.23.
^ ^
这边走
val.replace(/[^0-9\.]/g, '')
将替换匹配的字符
最佳答案
使用split
、shift
和join
:
var s = '84.54.23.'
var arr = s.split(/\./).filter(Boolean)
if (arr.length > 1)
s = arr.shift() + '.' + arr.join('')
//=> s="84.5423"
s = '86..3232'
arr = s.split(/\./).filter(Boolean)
if (arr.length > 1)
s = arr.shift() + '.' + arr.join('')
//=> s="86.3232"
s = '84.34356'
arr = s.split(/\./).filter(Boolean)
if (arr.length > 1)
s = arr.shift() + '.' + arr.join('')
//=> s="84.34356"
s = '.3948'
arr = s.split(/\./).filter(Boolean)
if (arr.length > 1)
s = arr.shift() + '.' + arr.join('')
//=> s=".3948"
关于javascript - 正则表达式:否定集中只有单个字符实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465370/