正则表达式仅匹配字母数字,连字符,下划线和句点,没有重复的标点符号

时间:2019-08-16 17:40:06

标签: regex string typescript

我是正则表达式和打字稿的新手,并试图让正则表达式匹配:

1. must start with alphanumeric (repeating is fine)
2. can contain alphanumeric (repeating is fine)
3. can contain periods, underscores, and/or hyphens (no repeating)
4. must end with alphanumeric (repeating is fine)

我一直在搜索,发现了许多类似的示例,我试图根据需要调整它们以使其正常工作,但是我一直无法找到正确的解决方案。如果任何人都有很好的正则表达式可以帮助您,并且对其中的原因有一些解释,那么我可以了解有关该系统的更多信息。

以下是一些我要验证为可接受字符串的示例:

this.is.Valid
also_a_valid_1
Me-too.im_an-ugly.but_vALid-5tring

以及我当前的正则表达式允许的无效字符串的一些示例,但是应该失败,因为它具有重复的句点/连字符/下划线,并且在开头和结尾处都有句点,连字符,下划线:

-this..should..not.be.valid....
..THIS__.-also-should..fail-
why..IS_regex--so.confusing-for-n0obs

这是我正在使用的正则表达式的示例:

 validateString(myString: string): boolean {
    return (/^[a-zA-Z0-9_\-\.]+((\.-?|-\.?)[a-zA-Z0-9_\-\.]+)*$/.test(varKey))
 }

1 个答案:

答案 0 :(得分:3)

使用:

"Done!"

说明:

thread

Demo

^[a-z0-9]+(?:[._-][a-z0-9]+)*$