Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

Jāmaina šis:

 

$string_exp = "/^[A-Za-z .'-]+$/";

 

šis regex patterns patreiz matcho tikai latin characters, vajag unicode.

 

$string_exp = '/\A[\\p{L} .\'-]+\z/u';

 

pamēģini šo. Explanation: \A - string sākums (^var pāris control characterus palaist garām, cik esmu lasījis), \z - string beigas, \\p{L} - http://php.net/manual/en/regexp.reference.unicode.php.

u beigās nozīmē "ieslēgt unicode mode".

Edited by jurchiks
Posted

Latviešu valodā jau nemaz tik daudz to ekskluzīvo burtu nav,

$string_exp = "/^[āžšēčģņūīķļa-z\s\.\-]+$/i";
Posted (edited)

Un ko tad, ja krieviski ierakstīs? Uzreiz čau. Labāk jau lietot "\\p{L}", un nebūs jāmaina regex katru reizi, kad kāds jauns burts būs vajadzīgs.

 

@naathans - par to pašu vārdu/uzvārdu lamājas jeb par kaut ko citu?

 

Edit: bļin, notestēju to patternu uz savas kastes, neiet... maybe kkādu compile-time flagu vajag, hz.

Edit2: oh w8, no. Uzliku failam UTF-8 encoding (testēju np++, default ANSI), aizgāja normāli. Maybe tev vnk failam nepareizais encoding.

Edited by jurchiks
Posted

Konkrēti šobrīd cilvēks raud par LV garumzīmēm, tāpēc ir piedāvāts ātrs un nesāpīgs risinājums.

Man škiet, ka

$string_exp = '/\A[\\p{L} .\'-]+\z/u';

Par valīdu tiks uzskatīts arī "ütf väcu ö" respektīvi valīds būs ne tikai latviešu simbols!

Posted

Cik tev šaurs redzesloks... Kur cilvēks teica, ka validēt vajag TIKAI latviešu simbolus un nevienas citas valodas?

Tas, ka es iedevu triviālu risinājumu nenozīmē, ka redzesloks ir šaurs, kā jau minēju iepriekš, tavs risinājums validē burtus, kas nav prasīti, tātad tas nozīmē, ka arī tavā regex ir jāraksta izņēmumi!

Konkrētajā gadījumā, manuprāt uzrakstīt izņēmumums ir vieglāk, nekā uzrakstīt visu UTF-8 bloku un mēģināt norādīt, kuri UTF-8 simboli tomēr nekvalificējas manām prasībām.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...