Выделенное регулярное выражение для персидского алфавита

Как я могу определить регулярное выражение, которое принимает только символы персидского алфавита?

Я попробовал следующую функцию, но она не работает должным образом:

function Just_persian(str){
  var p=/[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\s]+$/;
  if(!str.match(p))
    alert("invalid format");
}

Ответ 1

Персидские символы находятся в арабском блоке Unicode, который варьируется от U + 0600 до U + 06FF (который указан в символьном классе как \u0600-\u06FF).

function just_persian(str){
    var p = /^[\u0600-\u06FF\s]+$/;

    if (!p.test(str)) {
        alert("not format");
    }
}

Адаптирован к JavaScript из этого вопроса: Regex для проверки входной строки находится на персидском языке

Ответ 2

Вы можете использовать persianRex, он обнаруживает все персидские символы в разных раскладках клавиатуры, а также с открытым исходным кодом.

Загрузите его и поместите в папку проекта. Затем включите его в свой HTML следующим образом:

<script src="persian-rex/dist/persian-rex.js"></script>

Затем в вашем Javascript вы можете сделать это:

function Just_persian(str){
  if(persianRex.text.test(str))
    alert("not format");
}

Ответ 3

Персидские символы находятся в пределах диапазона: [\ u0600-\u06FF] И: [\ s]

Используйте этот код:

function Just_persian(str){
  var p=/@"^([\u0600-\u06FF]+\s?)+$"/;
  if(!str.match(p))
    alert("not format");
}

Этот Патер включает в себя буквы и пробелы.