You are allowing at least one of any character in the square brackets like that, including spaces, so even the string " "
would be accepted.
You should do something like:
/^s*([A-Za-z-']+[A-Za-z-'s]*)s*$
^s*
: initial spaces allowed
[A-Za-z-']+
: at least one character in the given set (omit the space here so you have at least one character that is not a space)
[A-Za-z-'s]*
: zero or more characters in the given set
s*$
: trailing spaces and end of the string
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…