如果您允许的字符仅限于您列举的字符,您可以使用
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 个或多个字母、数字、空格和允许的符号
$
- 字符串结束。