日期:2014-05-20  浏览次数:20816 次

java正则表达式 价格验证
一个是价格的验证 带单位(比如:人民币,RMB,¥,美元,$...很多单位)

------解决方案--------------------
这个...你还是别用正则了,可匹配的条件太多了。各种货币,各种写法。  正则的话  你还放弃吧。
直接规定用哪几种货币单位 还行
------解决方案--------------------
"xxx".matches("\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
$");
------解决方案--------------------
引用:
不行啊
public static void main(String[] args) {
String jiage2="\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
$";
String name="15.00$";
System.out.println(name.matches(jiage2));


}


报错
Exception in thread "main……

你的正则String jiage2="\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
$";
少了个)吧String jiage2="\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
\\$)";
顺便把$转义下
------解决方案--------------------
引用:
public static void main(String[] args) {
String jiage2="\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
\\$)";
String name="15.00$";
System.out.println(name.matches(jiage2));


}
返回为false,好像不能小数啊

修改正则String jiage2="\\d+(\\.\\d)?(人民币
------解决方案--------------------
RMB
------解决方案--------------------

------解决方案--------------------
美元
------解决方案--------------------
\\$)";
String jiage2="\\d+(\\.\\d+)?(人民币