我是正则表达式和打字稿的新手,并试图让正则表达式匹配:
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))
}