在ibatis下匹配特殊手机号码(oracle数据库)

<isNotNull prepend="AND" property="endNumber">
            <isNotEmpty property="endNumber">
            	<isNotNull property="isRuleEndNumber">
            	<isNotEmpty property="isRuleEndNumber">
            		<isEqual property="isRuleEndNumber" compareValue="1">
		            	<isEqual property="endNumber" compareValue="-4">
					substr(t.UIM_CARD,11,1)!=4
				</isEqual>
				<isEqual property="endNumber" compareValue="AABAA">
					substr(t.UIM_CARD,11,1)=substr(t.UIM_CARD,10,1)
					and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,7,1) 
					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
				</isEqual>
				<isEqual property="endNumber" compareValue="AAA">
					substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,9,1) 
					and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,8,1)
				</isEqual>
				<isEqual property="endNumber" compareValue="ABC">
					regexp_like(substr(t.UIM_CARD,9,3),'^(012|123|234|345|456|567|678|789)$$')
					and to_number(substr(t.UIM_CARD,8,1))+1!=to_number(substr(t.UIM_CARD,9,1))
				</isEqual>
				<isEqual property="endNumber" compareValue="AAAA">
					regexp_like(substr(t.UIM_CARD,8,4),'^([0-9])\1{3}$$')
				</isEqual>
				<isEqual property="endNumber" compareValue="ABCD">
					regexp_like(substr(t.UIM_CARD,8,4),'^(0123|1234|2345|3456|4567|5678|6789)$$')
				</isEqual>
				<isEqual property="endNumber" compareValue="AABB">
					substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,11,1)
					and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,9,1)
					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
				</isEqual>
				<isEqual property="endNumber" compareValue="ABAB">
					substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,10,1)
					and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
					and to_number(substr(t.UIM_CARD,10,1))+1=substr(t.UIM_CARD,11,1)
				</isEqual>
				<isEqual property="endNumber" compareValue="88">
					substr(t.UIM_CARD,10,2)='88'
				</isEqual>
            		</isEqual>
            	</isNotEmpty>
            	</isNotNull>
		<isNotNull property="isRuleEndNumber">
             	 <isNotEmpty property="isRuleEndNumber">
              		<isEqual property="isRuleEndNumber" compareValue="0">
               			#endNumber#=substr(t.UIM_CARD,11-length(#endNumber#)+1,length(#endNumber#))
              		</isEqual>
             	 </isNotEmpty>
             	</isNotNull>
 上面分两部分,一部分按照规则匹配号码,下面部分按照尾数匹配号码.这些代码都是能正常使用的。
 
以下一些正则表达式来自网上,本人仔细研究测试过,能在JAVA代码里面使用,但是不能在SQL语句中使用:String s="5678";
  System.out.println(s.matches("^[0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){3}$"));
  String s2="11";
  System.out.println(s2.matches("^([0-9])\\1$"));
  String pwd ="666";
  String regx = "^(\\d)\\1{2}$";以上都返回true String aabb="1122";
System.out.println(aabb.matches("^([0-9])\\1([0-9])\\2$"));
  
String abab="1212";
System.out.println(abab.matches("^([0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){1})\\1$"));以上也都返回true String s="544354645435";
System.out.println(s.matches("^[^0-9]*$"));这个是false,呵呵。。

var re = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ig;

var re = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ig;
var re = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ig;
/^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i/^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i
var re = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ig;邮箱
var rg = /^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i;网址
 
var rg = /^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i;
var rg = /^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i;
var rg = /^((https?|ftp|news):\/\/)?([\w-]+\.)+(.)+(:\d+)?(\/[\w- .\/?%&=]*)?$/i;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值