Regex 正则表达式只允许字母字符、连字符、撇号和句点

Regex 正则表达式只允许字母字符、连字符、撇号和句点,regex,Regex,我从链接中得到了一个参考: 我有完全相同的要求。但是对于正则表达式/^[a-zA-Z.-]+$/也可以接受以下字符串: 塔维派。(我只需要中间名的特殊字符) 所以我尝试了以下正则表达式: ^[a-zA-Z]*[ '.-][a-zA-Z]+$ 但它也在失败。我也试过,但没有成功。请让我知道我是如何做到这一点的? < P>删除 */Cux>量词,使字母开始,并在结尾处考虑: ^[a-zA-Z](?:[ '.\-a-zA-Z]*[a-zA-Z])?$ 试试这个^[a-zA-Z](?:['.\-a

我从链接中得到了一个参考:

我有完全相同的要求。但是对于正则表达式
/^[a-zA-Z.-]+$/
也可以接受以下字符串:

  • 塔维派。(我只需要中间名的特殊字符)
  • 所以我尝试了以下正则表达式:

    ^[a-zA-Z]*[ '.-][a-zA-Z]+$
    

    但它也在失败。我也试过,但没有成功。请让我知道我是如何做到这一点的?

    < P>删除<代码> */Cux>量词,使字母开始,并在结尾处考虑:

    ^[a-zA-Z](?:[ '.\-a-zA-Z]*[a-zA-Z])?$
    

    试试这个
    ^[a-zA-Z](?:['.\-a-zA-Z]*[a-zA-Z])?$
    谢谢!工作很好。除了一个塞纳里奥:测试…测试。它应该只允许中间有一个特殊字符。然后使用这个
    ^[a-zA-Z](?:['.\-a-zA-Z]?[a-zA-Z])*$
    正则表达式允许我传递字符串:“tavish.agg1s”。但是它不是一个有效的字符串。哦,是的。它不适用于角度模式验证器:|请做一把小提琴。