(1) 需求:导入时得判断价格是否为非负数,不能为特殊字符(eg:#)。
程序测试:
实战:
正则表达式如下:
^[1-9](\d*)([.][0-9]*)?$
解析:
^:匹配输入字符串的开始位置。
[1-9]:设置第一个数字不是 0,范围1到9。
\:将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。
\d*:\d表示匹配一个数字字符。等价于 [0-9],*表示匹配前面的子表达式零次或多次。
[.][0-9]*:小数点后可以加零次或多次的 [0-9]。
?:匹配前面的子表达式零次或一次,例子中匹配([.][0-9]*)零次或一次,表示可能是小数或整数。
$:匹配输入字符串的结尾位置。
(2) 需求:校验导入的sku只能由数字或字母组成,不能为特殊字符(eg:#)。
程序测试:
实战:
正则表达式:^[A-Za-z0-9]+$
解析:
^:匹配输入字符串的开始位置。
[A-Za-z0-9]:匹配数字或者大小写字母。
+:表示匹配前面的子表达式一次或多次。
$:匹配输入字符串的结尾位置。