javascript - 如何编写正则表达式来检查特定数量的字符?

标签 javascript regex

我正在尝试测试状态代码的字符串,我的正则表达式是

^A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]$

问题是,如果我有像“CTA12”这样的东西作为测试字符串,它将得到 CT 的匹配。如何修改我的正则表达式以使其仅匹配不属于较大字符串的状态代码?

最佳答案

您对交替 anchor 的使用不正确,^AB|DC$ 表示“以 AB 开头或以 DC 结尾的字符串” 。要使 ^$ 都应用于交替的每个元素,您需要将交替放入一个组中,例如 ^(AB|DC )$.

尝试将正则表达式更改为以下内容:

^(A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$

使用组的另一种方法是将 ^$ 作为交替中每个元素的一部分,例如 ^AB$|^ DC$,但这会使你的正则表达式显着变长,所以一组是最好的选择。

关于javascript - 如何编写正则表达式来检查特定数量的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010872/

相关文章:

javascript - 根据一个属性和日期对象的值对数组进行排序,以使用 JavaScript 获取最近的条目

javascript - angularjs 不关注下一个元素

javascript - 展望错误 : "Add-in still working" when sending message

c++ - 当不存在可选子字符串时,避免匹配中的空元素

Python 正则表达式 : include an entire field

python - 正则表达式 python : Return words surrounding character

javascript - 调整窗口大小时如何让我的网站停留

javascript - 将 html 文档中的 css 样式提取到外部 css 文件

javascript - 匹配任何非单词字符(不包括变音符号)

ruby - 检查字符串是否与 ruby​​ 中的正则表达式匹配的最快方法?