关于银行账号正则表达式的正则表达式什么写

-&(void)viewDidLoad&{&&
&&&&[super&viewDidLoad];&&
&&&&NSString&*str&=&@"0783033";&&
&&&&BOOL&isRight&=&[self&checkCardNo:str];&&
&&&&if&(!isRight)&{&&
&&&&&&&&&&
&&&&&&&&UIAlertView&*alert&=&[[UIAlertView&alloc]initWithTitle:@"不对"&message:@"请重新输入卡号"&delegate:nil&cancelButtonTitle:nil&otherButtonTitles:nil,&nil&nil];&&
&&&&&&&&[alert&show];&&
&&&&}else{&&
&&&&&&&&UIAlertView&*alert&=&[[UIAlertView&alloc]initWithTitle:@"对"&message:@""&delegate:nil&cancelButtonTitle:nil&otherButtonTitles:nil,&nil&nil];&&
&&&&&&&&[alert&show];}&&
-&(BOOL)&checkCardNo:(NSString*)&cardNo{&&
&&&&int&oddsum&=&0;&&&&&
&&&&int&evensum&=&0;&&&&
&&&&int&allsum&=&0;&&
&&&&int&cardNoLength&=&(int)[cardNo&length];&&
&&&&int&lastNum&=&[[cardNo&substringFromIndex:cardNoLength-1]&intValue];&&
&&&&cardNo&=&[cardNo&substringToIndex:cardNoLength&-&1];&&
&&&&for&(int&i&=&cardNoLength&-1&;&i&=1;i--)&{&&
&&&&&&&&NSString&*tmpString&=&[cardNo&substringWithRange:NSMakeRange(i-1,&1)];&&
&&&&&&&&int&tmpVal&=&[tmpString&intValue];&&
&&&&&&&&if&(cardNoLength&%&2&==1&)&{&&
&&&&&&&&&&&&if((i&%&2)&==&0){&&
&&&&&&&&&&&&&&&&tmpVal&*=&2;&&
&&&&&&&&&&&&&&&&if(tmpVal&=10)&&
&&&&&&&&&&&&&&&&&&&&tmpVal&-=&9;&&
&&&&&&&&&&&&&&&&evensum&+=&tmpV&&
&&&&&&&&&&&&}else{&&
&&&&&&&&&&&&&&&&oddsum&+=&tmpV&&
&&&&&&&&&&&&}&&
&&&&&&&&}else{&&
&&&&&&&&&&&&if((i&%&2)&==&1){&&
&&&&&&&&&&&&&&&&tmpVal&*=&2;&&
&&&&&&&&&&&&&&&&if(tmpVal&=10)&&
&&&&&&&&&&&&&&&&&&&&tmpVal&-=&9;&&
&&&&&&&&&&&&&&&&evensum&+=&tmpV&&
&&&&&&&&&&&&}else{&&
&&&&&&&&&&&&&&&&oddsum&+=&tmpV&&
&&&&&&&&&&&&}&&
&&&&&&&&}&&
&&&&allsum&=&oddsum&+&&&
&&&&allsum&+=&lastN&&
&&&&if((allsum&%&10)&==&0)&&
&&&&&&&&return&YES;&&
&&&&else&&
&&&&&&&&return&NO;&&
阅读(...) 评论()用JS的正则表达式验证银行账号(19位数字)
- kaminlee - ITeye技术网站
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns="http://www.w3.org/1999/xhtml"&
&meta http-equiv="Content-Type" content="text/ charset=gb2312" /&
&title&验证银行账号&/title&
&style type="text/css"&
.STYLE1 {color: #FF0000}
&script language="javascript" type="text/javascript"&
function check()
var account = document.form1.account.
var reg = /^\d{19}$/g;
// 以19位数字开头,以19位数字结尾
if( !reg.test(account) )
alert("格式错误,应该是19位数字!");
alert("验证成功!");
&form id="form1" name="form1" method="post" action=""&
&input type="text" name="account" id="account" /&
& &span class="STYLE1"&* (19位数字)&/span&&/p&
&input type="button" name="button" id="button" value="验证" onclick="check()" /&
浏览: 130461 次
来自: 广州
ireport分页这个问题也困扰了我好久,后来我还是选择了换帆 ...
老大,你这方法不奏效啊,公司的电脑,这个过程很快就过去了,家里 ...
我在生成PDM的时候做了设置的,但是在生成的PDM中又变成Tr ...
ilemma 写道第一种方法,不能使啊....提示连接不到提供 ...
第一种方法,不能使啊....提示连接不到提供的 http:// ...正则应用实践之--银行账号输入数字格式化
通常,我们输入银行账号的界面是这样子的:
每隔四位加入一个空格。
这个空格肯定不是用户输入的,是伴随着用户的正常输入自动生成的。
在做一个添加合同页面时,无意间发现了这个正则表达式。
function formatCTNum(num){
& & return
num.replace(/[^0-9]/g, '').replace(/(\d{4})(?!$)/g, '$1 ')
这里涉及到正则的几个知识点:一,replace替换。二,捕获分组。三,否定顺序环视。
去年上半年的时候曾专门抽时间来学习正则,其实这些知识点当时也都了解过。但苦于没有正式接触相关项目,所以印象不深,基础不牢。趁这个机会又回炉了下。
一开始我不理解num.replace(/[^0-9]/g,
'') 这个部分,觉得直接&return num.replace(/(\d{4})(?!$)/g, '$1
')就可以啊。后来想了想,其实这样挺好的,可以阻止用户输入非数字类型的字符。假如用户输入的是0-9之外的部分,就直接删除掉了。嗯,[^0-9]是排除型字符组,表示在当前位置,匹配一个没有列出的字符(不是在当前位置不要匹配列出的字符)。
接下来,我不理解(?!$)这个部分。因为我随便拿一个数字字符串来试验,都可以达到最终想要的结果:以四个数字为一组,加一个空格。难道是手误?不可能,因为看上去很高大上的样子。这么写一定有它的巧妙高深之处。
我先问士勇。士勇沉吟片刻说不知道。过了会儿我再问善冲。善冲也沉吟了片刻,终于一语道破天机。之所以我之前举的例子都没问题,是因为没举到点子上,没找到问题的关键。假如以4的整数倍的数字举例,会在最后一个数字的后面也添加一个空格。加了(?!$)则能有效的避免这个问题。
(?!$)是否定顺序环视。环视,是断言的一种。断言并不真正匹配文本,而只负责判断在某个位置左/右侧的文本是否符合要示。常见的断言有:单词边界,行起始/结束位置,环视。
环视类似于单词边界,在它旁边的文本需要满足某种条件,而且本身不匹配任何字符。“停在原地,四处张望”。常见的环视有肯定顺序环视,否定顺序环视,肯定逆序环视,否定逆序环视。由于JS不支持逆序环视,所以只支持支持肯定顺序环视,否定顺序环视。
肯定顺序环视用(?=...)来表示,否定顺序环定用(?!...)来表示。所以回到刚才我们举的例子来看,(\d{4})(?!$),是说当后面的条件不成立后,(\d{4})才执行。也就是说,这四个连续的四个数字不能处于最尾部。
由此,我们再发散一下,做一个类似的例子:给数字加千分号。
首先,我们要找到这么一个位置,它的后面要符合的条件为:是3个连续的数字。所以我们先这么写:
"2131232".replace(/(?=(\d{3})+)/g,
结果貌似不是我们所预期的。因为“右侧数字字符串”严格说应该是“当前位置右侧,所有数字字符构成的字串”,但是(?=(\d{3})+)并不能表达这个意思,比如第一个字符之前的位置,右侧数字字符串长度是7,但其中存在长度为3的子串,所以这个位置也可以匹配。同样,第二个字符,第三个字符之前的位置都可以匹配。
所以我们必须结合否定顺序环视来解决这个问题。让(\d{3})+能匹配右侧的整个数字字符串,而不能只匹配其中的一个子串。也就是说,要一直匹配到“右侧不再有数字字符的位置”为止。所以,必须将表达式改写为(?=(\d{3})+(?!\d))。
所以,完整的表达式应该写成:
"2131232".replace(/(?=(\d{3})+(?!\d))/g,
也可以写成捕获分组的形式:&"2131232".replace(/(\d)(?=(\d{3})+(?!\d))/g,
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。转过路角忽然发现,3岁的儿子已在路口等着自己回来。
在0℃的江苏无锡街头,环卫工用双手疏通下水道。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  “IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。 点击蓝色微信名可快速关注我们!
  1 . 校验密码强度
  密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
  ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  2. 校验中文
  字符串仅能是中文。
  ^[\\u4e00-\\u9fa5]{0,}$
  3. 由数字、26个英文字母或下划线组成的字符串
  ^\\w+$
  4. 校验E-Mail 地址
  同密码一样,下面是E-mail地址合规性的正则检查语句。
  [\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?
  5. 校验身份证号码
  下面是身份证号码的正则校验。15 或 18位。
  15位:
  ^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$
  18位:
  ^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$
  6. 校验日期
  “yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。
  ^(?:(?!]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[1])-31)|(?:[0-9]{2}(?:0[48]|[]|[13579][26])|(?:0[48]|[]|[1)-02-29)$
  7. 校验金额
  金额校验,精确到2位小数。
  ^[0-9]+(.[0-9]{2})?$
  8. 校验手机号
  下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
  ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$
  9. 判断IE的版本
  IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。
  ^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$
  10. 校验IP-v4地址
  IP4 正则语句。
  \\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b
  11. 校验IP-v6地址
  IP6 正则语句。
  (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
  12. 检查URL的前缀
  应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。
  if (!s.match(/^[a-zA-Z]+:\\/\\//)) { s = 'http://' +}
  13. 提取URL链接
  下面的这个表达式可以筛选出一段文本中的URL。
  ^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?
  14. 文件路径及扩展名校验
  验证windows下文件路径和扩展名(下面的例子中为.txt文件)
  ^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?&&&|]+\\.txt(l)?$
  15. 提取Color Hex Codes
  有时需要抽取网页中的颜色代码,可以使用下面的表达式。
  ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
  16. 提取网页图片
  假若你想提取网页中所有图片信息,可以利用下面的表达式。
  \\& *[img][^\\\\&]*[src] *= *[\\&\\']{0,1}([^\\&\\'\\ &]*)
  17. 提取页面超链接
  提取html中的超链接。
  (&a\\s*(?!.*\\brel=)[^&]*)(href=&https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^&]+)&((?!.*\\brel=)[^&]*)(?:[^&]*)&
  18. 查找CSS属性
  通过下面的表达式,可以搜索到相匹配的CSS属性。
  ^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}
  19. 抽取注释
  如果你需要移除HMTL中的注释,可以使用如下的表达式。
  &!--(.*?)--&
  20. 匹配HTML标签
  通过下面的表达式可以匹配出HTML中的标签属性。
  &\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:&.*?&|'.*?'|[\\^'&&\\s]+))?)+\\s*|\\s*)\\/?&
  文章来源于趣IT
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:}

我要回帖

更多关于 银行账号的正则表达式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信