1 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果我沒看錯(cuò)的話,規(guī)則是:
必須至少有一個(gè)阿拉伯文字字符
必須僅包含阿拉伯文字、空格和
,.()-
如果是這樣,您想要:
對(duì)字符串中某個(gè)位置的阿拉伯字符進(jìn)行正向預(yù)測(cè),并結(jié)合
^
和$
錨點(diǎn)要求它們之間的所有內(nèi)容都是阿拉伯語或.,()-
或空格
如果是這樣,您可以使用 Unicode 屬性轉(zhuǎn)義(ES2018+,在最新的 Firefox、Chrome/Chromium、Safari、Brave 和 Edge [v79+] 中受支持;或者您可以使用 http://xregexp.com 等庫) / ):
const rex = /^(?=.*?\p{Script_Extensions=Arabic})[- ().,\p{Script_Extensions=Arabic}]+$/u;
實(shí)例:
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");
}
添加回答
舉報(bào)