- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要验证帐号。有效数字可以是正好 11 数字的序列,也可以是用连字符分隔的 3 组数字(2 位 - 3 位 - 6 位)
我试过这个:
/^([0-9]{11})|([0-9]{2}-[0-9]{3}-[0-9]{6})$/
但它只适用于第二条规则。第一条规则不起作用,因为它允许超过 11 位的数字
这就是我在 js 函数中使用正则表达式的方式:
var re = /^([0-9]{11})|([0-9]{2}-[0-9]{3}-[0-9]{6})$/;
if (re.test(txtNumber.value)==true) {
return 1;
}
else {
alert("Invalid Account Number");
return 0;
}
任何建议或指导将不胜感激
有效号码:
12345678912(11 位数字)
12-345-678912(用连字符分隔的 11 位数字)
无效数字:
1223(少于11位)
111111111111(超过11位)
123-23-678912(11位,但没有正确分隔,应该是2位-3位-6位)
最佳答案
由于|
正则运算符的优先级最低,所以应该这样写:
/^(?:[0-9]{11}|[0-9]{2}-[0-9]{3}-[0-9]{6})$/
... 以便将交替模式绑定(bind)到字符串的开头和结尾。
在您的代码中,模式检查 字符串开头的 11 位数字序列,或“两位数、连字符、三位数字、连字符、六位数字”的序列 em>在它的末端 - 但从来没有真正将规则绑定(bind)到两端。这很容易证明:
var patt = /^([0-9]{11})|([0-9]{2}-[0-9]{3}-[0-9]{6})$/;
patt.test('acdbdfdsfsf22-333-666666'); // true
作为旁注,因为您不需要使用该分组表达式捕获任何内容,所以我在它前面添加了 ?:
。其实还可以进一步优化:
/^[0-9]{2}(?:[0-9]{9}|-[0-9]{3}-[0-9]{6})$/
...因为交替越少越好。但在这种情况下,我想这真的无关紧要。
简而言之,问题可以用这两种模式来说明:
/^a|b$/
这读作“匹配字符串开头的a
,或结尾的b
”。
/^(?:a|b)$/
这读作“匹配字符串的开头
,后跟a
或b
,然后是字符串的结尾”字符串
'。
关于javascript - 正则表达式 - 使用两种不同的模式验证帐号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22749891/
你们用什么来生成唯一帐号?有些使用 Autoinc 字段,有些使用其他东西......什么是正确的方法,即在运行插入查询之前获取帐号? 最佳答案 如果您使用的是 SQL 数据库,请使用生成器。如果您想
希望扩大提问的范围here ,关于查找密码为空的用户。我想要的是过滤掉该行的系统帐户 sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1 当我运
我有一个以 Stripe 和 Laravel 作为后端的当前设置。一切都按预期完美运行,但我有一个关于安全性的问题。 因为我有一个 React 前端来接受付款,所以我使用包 @stripe/react
有人知道如何使用 AWS Powershell 获取 AWS 帐号吗?看起来没有可用的 API。 最佳答案 漂亮又简单 (Get-STSCallerIdentity).Account ...或 (Ge
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我的代码: Account[] accts = mgr.getAccountsByType("com.google"); Account acct = accts[0]; System.out.pri
为了自动化,我希望我的 IAM 策略是通用的。 我知道 ${aws:username} 获取它所应用到的策略的用户名。 是否可以在 IAM 策略中使用类似 arn:aws:iam::123456789
我们正在 AWS 上为我们的内部组织构建一项服务,以根据此处的引用文档管理其 AWS 账户。 引用号:http://docs.aws.amazon.com/IAM/latest/UserGuide/i
如何根据托管在亚马逊的 EC2 实例 ip 获取 aws 帐号/id 我有一个实例名称 CTI 服务器,它托管在一个 AWS 账户中。 我有 CTI 服务器的详细信息,例如私有(private) ip
我是一名优秀的程序员,十分优秀!