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+)?))$
MySQL正则匹配金额,前面可以有正负号,可以有千分符,可以有小数位
最后发布:2020-07-21 14:00:24首次发布:2020-07-21 14:00:24