javascript - 正则表达式在查找字母字符时分割数字字符串

标签 javascript regex

好的正则表达式对我来说是最令人困惑的事情之一。我正在尝试用 JavaScript 来做到这一点。我有一个搜索字段,用户将输入一系列字符。代码是:

999MC111

或者只是

999MC

始终有 2 个字母字符。但前面可能有 1-4 个字符,有时末尾有 1-4 个字符。

如果代码以 Alpha 字符结尾,那么我将运行某个 ajax 脚本。如果有数字 + 2 个字母 + 数字...它会运行不同的 ajax 脚本。

我的困难是我知道\d 代表 2 位数字......但它可能并不总是 2 位数字。

那么我的正则表达式代码是什么来将其分割成一个数组。或其他什么。

我认为正确的正则表达式是 (/^([0-9]+)([a-zA-z]+)([0-9]+)$/

但是我如何确保中间只有 2 个字母字符?

谢谢

最佳答案

您可以使用正则表达式 /\d$/ 来确定它是否以小数结尾。

\d 匹配十进制字符,$ 匹配字符串末尾。 / 字符将表达式括起来。

尝试在 JavaScript 控制台中逐行运行此代码。

var values = ['999MC111', '999MC', '999XYZ111']; // some test values

// does it end in digits?

!!values[0].match(/\d$/); // evaluates to true
!!values[1].match(/\d$/); // evaluates to false

关于javascript - 正则表达式在查找字母字符时分割数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481830/

相关文章:

javascript - 正则表达式 "ignores"量词?

javascript - Javascript 对象中属性值更改的监听器

python - 将连字符与换行符相结合

javascript - JS 动态添加的内容在特定屏幕尺寸下不显示(CSS/布局?)

javascript - 如何将 [Object HTML] 解析为 HTML 字符串

regex - sed 替换为部分字符串

mysql - Mariadb V10.3.6 用于 2 个重复词的 REGEXP 表达式

java - 取消长时间运行的正则表达式匹配?

javascript - 在一个 Controller ui-router 中的所有 $state.go() 事件之前运行检查

javascript - NodeJS object.keys 错误