问题1
某公司的员工工号的形式为:字母+7位数字,其中首字母可以为F、G、X,比如工号F1213890。现要求判断输入的工号是否符合要求。
方括号
- 使用方括号[]可以创建一个字符集合,表示匹配方括号中的任意字符。
- 可以使用短横-来指定一个字符范围,^表示否定
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 待检验的字符串
var str1 = "f1213789";
var str2 = "G2005682";
var str3 = "X2022715";
// 正则表达式
var regexp = /^[XFG]\d{7}$/;
// 结果
console.log(regexp.test(str1))
console.log(regexp.test(str2))
console.log(regexp.test(str3))
</script>
</body>
</html>
分析
var regexp = /^[XFG]\d{7}$/;
该正则表达式表示:
第一位是字母X或F或G,字母后面是7位数字
结果
问题2
某字符串由4位小写字母组成,且最后一位不能为字母k
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 待检验的字符串
var str1 = "abck";
var str2 = "abcd";
var str3 = "kabc";
// 正则表达式
var regexp = /^[a-z]{3}[a-jl-z]$/;
// 结果
console.log(regexp.test(str1))
console.log(regexp.test(str2))
console.log(regexp.test(str3))
</script>
</body>
</html>
注意
- 方括号中字符的关系是或的关系,即[a-z^k]表示:可以是小写字母a-z,也可以是”不为字母k"
- [^k]表示不为字母K,但是不能确保只能是其他的小写字母,还可以是数字、大写字母等