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 ответа:
Ну, согласно документу , который я нашел на веб-сайте 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; }