POPMUISE
如果我没看错的话,规则是:必须至少有一个阿拉伯文字字符必须仅包含阿拉伯文字、空格和,.()-如果是这样,您想要:对字符串中某个位置的阿拉伯字符进行正向预测,并结合^和$锚点要求它们之间的所有内容都是阿拉伯语或.,()-或空格如果是这样,您可以使用 Unicode 属性转义(ES2018+,在最新的 Firefox、Chrome/Chromium、Safari、Brave 和 Edge [v79+] 中受支持;或者您可以使用 http://xregexp.com 等库) / ):const rex = /^(?=.*?\p{Script_Extensions=Arabic})[- ().,\p{Script_Extensions=Arabic}]+$/u;实例:const rex = /^(?=.*?\p{Script_Extensions=Arabic})[- ().,\p{Script_Extensions=Arabic}]+$/u;const shouldNotMatch = [" ", ",()-"];const shouldMatch = ["سشييتنسشاي", ".()-,سشييتنسشاي", "سشييتنسشاي.(ي)-,"];for (const str of shouldNotMatch) { const result = rex.test(str); console.log(str, result, result ? "ERROR" : "Good");}for (const str of shouldMatch) { const result = rex.test(str); console.log(str, result, result ? "Good" : "ERROR");}