嗨第一次问题在这里...我有以下不能正常工作的preg_match模式,我学到的可能是UTF-8编码问题......或者只是我的编码错误!
以下模式有效,但不适用于撇号(有/无逃避撇号没有区别):
$pattern="/^([A-Za-z \'-])+$/";
以下模式适用于我想要的撇号,但它也允许&,#和;这不太理想:
$pattern="/^([A-Za-z '\-])+$/";
此模式适用于所有字符,但只允许输入文本字符串中的一个撇号实例(我不理解&#0 * 39中0 *的重要性):
$pattern="/^([A-Za-z \-])+(\'|�*39;)*([A-Za-z \-])+$/";
任何人都可以了解我出错的地方吗?我已经翻了一百页寻找答案,这让我发疯了!
答案 0 :(得分:1)
你试过:“/ [^ a-zA-Z0-9' - ] + /”
答案 1 :(得分:0)
怎么样:
$pattern="/^([A-Za-z \-]+(?:\'|�*39;)*)*[A-Za-z \-]+$/";
答案 2 :(得分:0)
您可以使用此代码检查输入中是否包含',然后将单引号替换为空
$text = "Welcome I'm Lan Danel";
if (strpos($text, "'") !== false) {
$input= str_replace("'","",$txtComment);
}
输出将是:
Welcome Im Lan Danel