一个让人头疼的问题,我想要匹配正整数,但不包含1.0这样的,于是想着先转字符串,然后正则去匹配点,结果失败了···任何形式的转换,1.0都会被转成1,而直接用1.0数字去正则匹配呢,它又无法匹配到点,好像内部是先转为字符串再匹配的。
请问有人遇到过类似的需求吗?怎么破呀,也不能用toFixed这样的函数,因为数字有可能不是小数。
一个让人头疼的问题,我想要匹配正整数,但不包含1.0这样的,于是想着先转字符串,然后正则去匹配点,结果失败了···任何形式的转换,1.0都会被转成1,而直接用1.0数字去正则匹配呢,它又无法匹配到点,好像内部是先转为字符串再匹配的。
请问有人遇到过类似的需求吗?怎么破呀,也不能用toFixed这样的函数,因为数字有可能不是小数。
……源数据到底是number
还是string
?
number
: Number.isInteger
string
: 正则表达式还是说你是想匹配字面量?那只能把整个js文件喂给正则表达式。但是匹配字面量这种奇葩需求闻所未闻,如果是上司指派,建议跳槽。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
Math.floor(num) == num
就行了,但1.0
没法排除,也不可能排除,因为js里数字1.0
和整数1
是一个东西。字符串的话用断言咯