如果您允许的字符仅限于您列举的字符,您可以使用
var regex = XRegExp("^[\\s'()-]*\\p{L}[\\s\\p{L}'()-]*$");
如果您想允许任何字符但只允许符号子集,请使用“至少 1 个字母”限制
var regex = XRegExp("^[\\p{N}\\s'()-]*\\p{L}[\\p{L}\\p{N}\\s'()-]*$");
查看 JS 演示:
var regex = XRegExp("^[\\s'()-]*\\p{L}[\\s\\p{L}'()-]*$");
console.log( regex.test("Sóme (unknown-string) doesn't like it") );
var regex = XRegExp("^[\\p{N}\\s'()-]*\\p{L}[\\p{L}\\p{N}\\s'()-]*$");
console.log( regex.test("Sóme unknown-string (123)") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min.js"></script>
细节
^- 字符串的开始
[\\s'()-]*- 0 个或多个空格'、、、(或字符)-
[\\p{N}\\s'()-]*- 0 个或多个数字、空格和允许的符号
\\p{L}- 一封信
[\\s\\p{L}'()-]*- 0 个或 多个空格、字母'、、、(或字符)-
[\\p{L}\\p{N}\\s'()-]*- 0 个或多个字母、数字、空格和允许的符号
$- 字符串结束。