带有preg_match的撇号问题

问题描述 投票:0回答:3

您的第一次问题……我对preg_match使用了以下模式,该模式无法正常工作,据我了解,这可能是UTF-8编码问题...或者只是我的编码错误!

以下模式有效,但不适用于撇号(带/不带撇号都没有区别:]

$pattern="/^([A-Za-z \'-])+$/";

以下模式像我想要的那样适用于撇号,但是它也允许&,#和;这不理想:

$pattern="/^([A-Za-z '\-])+$/";

此模式适用于所有字符,但是在输入文本字符串中仅允许单引号的一个实例(而且我不理解&#0 * 39;中0 *的含义:]]]

$pattern="/^([A-Za-z \-])+(\'|&#0*39;)*([A-Za-z \-])+$/";

任何人都可以阐明我要去的地方吗?我已经浏览了一百页,一直在寻找答案,这让我发疯了!

您的第一次问题……我对preg_match使用了以下模式,该模式无法正常工作,据我了解,这可能是UTF-8编码问题……或者仅仅是我的编码错误!以下模式...

php utf-8 preg-match ascii apostrophe
3个回答
0
投票

怎么样:


1
投票

您是否尝试过:“ / [^ a-zA-Z0-9'-] + /”


0
投票

您可以使用此代码检查输入是否包含',然后像这样将单引号替换为空

© www.soinside.com 2019 - 2024. All rights reserved.