我用java写了一个正则表达式。正则的规则是: 只能是数字或者字母,但不能全部为数字
public class TestRegx {
public void test(String str){
boolean boo = str.matches("((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)");
System.out.println(boo);
}
public static void main(String[] args) {
TestRegx t = new TestRegx();
t.test("3131231");
t.test("adfdsf");
t.test("aaa345546aghhth");
t.test("121fafda");
t.test("faafa");
t.test("ddd1231");
t.test("12312afaf12312");
}
}这个正则已经满足了我的需求,将这个正则放到struts2的validation.xml里
<field-validator type="regex">
<param name="expression"><![CDATA[((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)]]></param>
<message key="errors.namenum"/>
</field-validator>问题出现了,输入只能全部为字母,只要出现一个数字就不能通过.
请问这是什么原因,JS的正则和java的正则有区别,难道java和xml在解析正则表达式的时候也有区别?
我应该在validation.xml里怎么写这个正则表达式呢?
public class TestRegx {
public void test(String str){
boolean boo = str.matches("((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)");
System.out.println(boo);
}
public static void main(String[] args) {
TestRegx t = new TestRegx();
t.test("3131231");
t.test("adfdsf");
t.test("aaa345546aghhth");
t.test("121fafda");
t.test("faafa");
t.test("ddd1231");
t.test("12312afaf12312");
}
}这个正则已经满足了我的需求,将这个正则放到struts2的validation.xml里
<field-validator type="regex">
<param name="expression"><![CDATA[((\\d)*)([a-zA-Z]+)((\\d)*)([a-zA-Z]*)]]></param>
<message key="errors.namenum"/>
</field-validator>问题出现了,输入只能全部为字母,只要出现一个数字就不能通过.
请问这是什么原因,JS的正则和java的正则有区别,难道java和xml在解析正则表达式的时候也有区别?
我应该在validation.xml里怎么写这个正则表达式呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货