正则表达式 - 字符串包含6位数字

时间:2016-12-13 17:16:53

标签: regex validation

我试图编写一个正则表达式来解析数据库中的银行排序代码。 我需要正则表达式的原因是排序代码可能包含在句子中。 但是,它可能根本不是排序代码,因为人们有时会将数据输入数据库,将银行帐号和电话号码放入排序代码列。 我可以用

^[^0-9]*[0-9]{6}[^\d]*$ 

适用于

"blah123456blah"

但不是

"Emloyee 12's srt code : 123456"

我尝试过的任何其他内容都会让我匹配字符串中的6个或更多位数(这很可能是银行帐号)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

你说你正在使用

[0-9]{2}\s*-?\s*[0-9]{2}\s*-?\s*[0-9]{2}

要添加您需要的边界,请添加(^|[^0-9])(字符串起始位置(^)或(|)非数字([^0-9]))在前面和([^0-9]|$)(匹配一个非数字或字符串位置的末尾($))在最后:

(^|[^0-9])[0-9]{2}\s*-?\s*[0-9]{2}\s*-?\s*[0-9]{2}([^0-9]|$)

请参阅Object.prototype.isPrototypeOf