PHP Regex validate letters and Spanish accent

前端 未结 3 817

How can I add/improvised my code so Spanish accent will be considered as valid in addition to normal alphabet (a-z)

I have the following in my code

p         


        
相关标签:
3条回答
  • 2020-12-30 15:22

    As found in the answer to this question, you could match accented characters using the full Letter Unicode property \p{L}. That includes regular a-z characters along with accented ones, so replace a-z in your expression with this like so:

    $reg = "#[^\p{L}\s-]#u";
    

    Note that to use this you need the UTF-8 modifier u after your closing delimiter, as the docs say such Unicode "character types are available when UTF-8 mode is selected".

    0 讨论(0)
  • 2020-12-30 15:34

    I think you can use the hexadecimal representation of each letter:

    <?php
    function IsAlpha($sString)
    {
    
      $reg = "#[a-zA-Z\xE1\xE9\xED\xF3\xFA\xC1\xC9\xCD\xD3\xDA\xF1\xD1]+#i";
      $count = preg_match_all($reg, $sString, $matches, PREG_OFFSET_CAPTURE);
      return $matches;
    }
    echo '<pre>';
    print_r(IsAlpha("abcdefgh ñ á é í ño 123 asd asáéío nmas asllsdasd óúfl ÑABDJÓ ÚñÍÉ"));
    echo '</pre>';
    

    I do not know if there are all the letters, but you can add more with this link.

    0 讨论(0)
  • 2020-12-30 15:38

    You can also use T-Regx:

    pattern('[^\p{L}\s-]', 'u')->fails($s);
    
    0 讨论(0)
提交回复
热议问题