【发布时间】:2013-05-09 18:58:37
【问题描述】:
正如主题所指出的,我需要一个 JavaScript 正则表达式 X 字符长,它接受字母数字字符,但不接受下划线字符,也接受句点,但不接受开头或结尾。句号也不能是连续的。
我几乎可以在 Stack Overflow (such as here) 上搜索和阅读其他人的问题和答案。
但是,在我的情况下,我需要一个字符串,该字符串的长度必须正好为 X 个字符(比如 6 个),并且可以包含字母和数字(不区分大小写),还可以包含句点。
所述句点不能连续,也不能开始或结束字符串。
Jd.1.4 有效,但Jdf1.4f 无效(7 个字符)。
/^(?:[a-z\d]+(?:\.(?!$))?)+$/i
是我能够使用其他人的示例构建的,但我不能让它只接受与设定长度匹配的字符串。
/^((?:[a-z\d]+(?:\.(?!$))?)+){6}$/i
它现在可以接受不少于 6 个字符,但它也很乐意接受任何更长的字符...
我显然遗漏了一些东西,但我不知道它是什么。
谁能帮忙?
【问题讨论】:
-
单独检查长度不是更容易吗(比如,foo.length == 6)?
-
试试这个正则表达式:
/^[a-z\d](?![^.]*[.]{2})[a-z\d.]{4}[a-z\d]$/i
标签: javascript regex