我正在尝试检查 string
是否仅包含以下格式的有效数字
123.456
123
.356
但它应该拒绝任何包含非数字的东西,包括双点。以下是一些无效格式
d123.456
123d
12d3
d.1256
12d.456
12.d12
12.d45d
12.45.56
我做了以下
SELECT CASE WHEN '123.00' NOT LIKE '%[^0-9.]%' THEN 'Valid' ELSE 'Invalid' END
除了字符串中有多个点的情况外,何时似乎有效。
如何调整正则表达式以仅允许一个点,否则返回“无效”?
原文由 Junior 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议
try_convert()
:一个可能的缺点是指数格式。
1e6
例如是一个有效的数字。另一种方法是
where
方法;你只需要更完整的逻辑: