我的文件名将是这样的:
Annual-GDS-Valuation-30th-Dec-2016-082564K.docx
它将包含5个数字后跟一个字母,但它可能位于文件名中的不同位置。前导零可能存在也可能不存在,但不是必需的。
这是我在查看示例后提出的代码,但SelectedFileClientID
总是null
var SelectedFileClientID = files.match(/^d{5}\[a-zA-Z]{1}$/);
我不确定我做错了什么。
编辑:
0
与我试图提取的代码无关。它可能存在也可能不存在,它甚至可能是一个完全不同的角色,或者不止一个,但与它完全没有任何关系。客户已经决定要在那里添加其他角色。
答案 0 :(得分:1)
你的正则表达式至少有3个问题:1)模式用锚点括起来,因此需要完整的字符串匹配,2)d
匹配字母d
,而不是数字,您需要\d
来匹配数字,3)\[
匹配文字[
,因此字符类会被破坏。
使用
/\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]);
&#13;
答案 1 :(得分:0)
好吧,有一些事情是错的......
var matches = files.match(/\-0?(\d{5}[a-zA-Z])\.[a-z]{3,}$/);
var SelectedFileClientID = matches ? matches[1] : '';
所以:
.match()
^
\d
{1}
:方括号内容就足够了,因为它匹配一个,只有一个字母。希望这有帮助!
答案 2 :(得分:0)
尝试这种模式\ d {5} [a-zA-Z]
答案 3 :(得分:0)
尝试 - 0?\d{5}[azA-Z]
正如您所说0
可能存在也可能不存在。所以0?
会考虑到这一点。
或者可以这样做。它可以匹配任何随机字符。
(\w+|\W+|\d+)?\d{5}[azA-Z]