Codeigniter альфа и Альфа-числовая функция для поддержки арабского языка для проверки


Я очень, очень плох в регулярном выражении, и, к сожалению, это единственный раз, когда я действительно надеюсь, что знал это. У меня есть следующая функция, описывающая вложение арабской поддержки в выражение регулярного выражения:

function alpha_dash($str)
{
   return ( ! preg_match("/^[-_ dp{Arabic}]*p{Arabic}[dp{Arabic}]*$/ui", $str)) ? FALSE : TRUE;
} 

Теперь это управляется из здесь . Я хочу такую же поддержку для Альфа-и Альфа-числовых функций. Я действительно не могу играть с регулярным выражением, потому что я всегда ломаю вещи, когда я делаю.

Надеюсь, кто-то действительно может помочь :)

Правка:

public function alpha($str)
    {
        return ( ! preg_match("/^([a-z])+$/i", $str)) ? FALSE : TRUE;
    }


public function alpha_numeric($str)
    {
        return ( ! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE;
    }

Они мне нужны. две функции для поддержки арабского языка

2 2

2 ответа:

Ну, согласно документу , который я нашел на веб-сайте PHP о регулярных выражениях, это должно работать:

public function alpha($str)
{
    return ( ! preg_match('/^([a-z]|\p{Arabic})+$/iu', $str)) ? FALSE : TRUE;
} 

public function alpha_numeric($str)
{
    return ( ! preg_match('/^([a-z0-9]|\p{Arabic})+$/iu', $str)) ? FALSE : TRUE;
}

Используя это, он должен соответствовать Альфа + арабский или буквенно-цифровой + арабский. Дайте ему попробовать. Я думаю, что, возможно, потребуется, чтобы PCRE был скомпилирован с коммутатором --enable-unicode-properties, однако, который я не уверен, чтобы проверить это.

У меня есть этот код в библиотеке MY_Form_validation работает нормально

   public function alpha_ar($str) {
    $str = (strtolower($this->CI->config->item('charset')) != 'utf-8') ? utf8_encode($str) : $str;
    return (!preg_match("/^([إد ج ح خ ه ع غ ف ق ث ص ض ط ك م ن ت ا أ ل ب ي س ش ظ ز و ة ى لا ر ؤ ء ئ ذ])+$/i", $str)) ? FALSE : TRUE;
}