0

我需要找到好的正则表达式在 php 和 javascript 中工作,接受的字符是:

  é  è ' space and alphanumeric

我试过这个:

if(!preg_match("/^[a-z0-9]+([\\s]{1}[a-z0-9]|[a-z0-9])+$/i", $name))

如果你有 php 和 javascript 的解决方案,那将是一个完美的世界:)

感谢帮助

4

3 回答 3

3

所以你应该使用相应的正则表达式:

^[[:alnum:]éè ]+$

解释:

^                      # start of string
    [                  # match these characters
        [:alnum:]      # all alphanumeric chars
        é              # é letter
        è              # è letter
                       # a space
    ]                  # end of char group
    +                  # one or more sequence of these characters
$                      # end of string

现场演示

于 2013-10-26T17:08:59.260 回答
1

使用 unicode 属性:

preg_match("/^[\pL\pN\s']+$/u", $name)

\pL代表任何字母
\pN代表任何数字

于 2013-10-27T09:08:53.080 回答
1

您的正则表达式可能会被提炼成

 #  ^[a-zA-Z0-9éè'](?:[ ]?[a-zA-Z0-9éè']+)*$     

 ^ 
 [a-zA-Z0-9éè'] 
 (?: [ ]? [a-zA-Z0-9éè']+ )*
 $
于 2013-10-26T17:43:36.843 回答