MySQL正则匹配金额,前面可以有正负号,可以有千分符,可以有小数位

SELECT ('1299l' REGEXP '[^0-9.]');  通过返回 1;不通过返回 0

-- 这个是MySQL支持语法:
SELECT ('11,111,000.32' REGEXP '^(\\-|\\+){0,1}(([0-9]{1,3}(,[0-9]{3})*(.(([0-9]{3},)*[0-9]{1,})){0,1})|([0-9]+(.[0-9]+){0,1}))$')

-- 查表 table_test 中 num 字段匹配通过的:
SELECT num FROM table_test WHERE num REGEXP '^(\\-|\\+){0,1}(([0-9]{1,3}(,[0-9]{3})*(.(([0-9]{3},)*[0-9]{1,})){0,1})|([0-9]+(.[0-9]+){0,1}))$';

在mysql中转义符为\\
MySQL中   不支持 ?  可用 {0,1}替换   表示前面的表达式可以出现0次或者1次
		  不支持 \d 可用 [0-9]替换   \d匹配一个数字字符。等价于 [0-9]-- 这里是正则匹配的语法
-- let r=/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/; 
-- 匹配前面加+-号  ^(\-|\+){0,1}((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$ 
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页