我有一个类似于以下内容的文件名:
年度 GDS-Valuation-2016 年 12 月 30 日-082564K.docx
它将包含 5 个数字,后跟一个字母,但它可能位于文件名中的不同位置。前导零可能存在也可能不存在,但这不是必需的。
这是我在检查示例后得出的代码,但是 SelectedFileClientID
始终为 null
var SelectedFileClientID = files.match(/^d{5}\[a-zA-Z]{1}$/);
我不知道我做错了什么。
编辑:
0
与我尝试提取的代码无关。它可能存在,也可能不存在,甚至可能是一个完全不同的 Angular 色,或者不止一个,但与它完全无关。客户决定在那里添加额外的字符。
最佳答案
您的正则表达式至少存在 3 个问题:1) 模式用 anchor 括起来,因此需要完整的字符串匹配,2) d
与字母 d
匹配code>,不是数字,需要 \d
来匹配数字,3) \[
匹配文字 [
,所以字符类(class)被毁了。
使用
/\d{5}[a-zA-Z]/
详细信息:
\d{5}
- 5 位数字[a-zA-Z]
- ASCII 字母
JS 演示:
var s = 'Annual-GDS-Valuation-30th-Dec-2016-082564K.docx';
var m = s.match(/\d{5}[a-zA-Z]/);
console.log(m[0]);
关于javascript - JQuery 与 RegEx 匹配不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838698/