我正在研究JavaScript并且有非常基本的要求。 需要模式来查看字符串中的9个长度,其中8个必须是从起始和最后的数字必须是char存在。
示例:
有效值:
12345678
12345678A
无效值:
a12345678
12345678aa
为此,我写了以下模式:
var externalId = value;
var matchArr = externalId.match(/\d{0,8}[a-z|A-Z]?)/);
console.log(matchArr);
但它没有按预期工作 有人可以帮我这个吗?
答案 0 :(得分:1)
匹配8个数字,后跟字母使用模式/^\d{8}[a-z]?$/i
function check(el) {
var externalId = $(el).val();
var matchArr = externalId.match(/^\d{8}[a-z]?/i);
console.log(matchArr);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter 8 numbers and letter: <input type="text" id="text" onChange="check(this)"/>
正则表达式问题(/\d{0,8}[a-z|A-Z]?)/
):
\d{0,8}
- 允许0到8个数字序列
[a-z|A-Z]
- 允许大写,小写字母和“|” - 它不是组分隔符,它是文字“|”。
[...]?
- 允许前一组中的零个或一个字符
)
- 是文字“)”而不是捕获组结束,因为找不到组的开头
答案 1 :(得分:0)
此正则表达式捕获每个字符串,包含8个数字和一个字符。
(\d{8}[A-z])(?:$|\s)
答案 2 :(得分:0)
此正则表达式捕获8个数字和最多一个字母
^[\d]{8}[A-z]{0,1}$