html5模式特殊字符不起作用

时间:2017-09-18 10:53:27

标签: php regex html5 function validation

让我们看看我是否可以清楚地解释,因为这不是一个简单的话题: 我在表单中使用HTML5模式验证,以允许特殊字符,如带引号和ñ的人声。这是我使用的模式: [A-Za-zñÑáéíóúÁÉÍÓÚ0-9。, - / _:)(] + 如果我在自己的php页面中设置验证它可以正常工作:

[...]

<form method="post" action="mod_netrep.php">
<?php 
$tcoments="<input type='text' pattern='[A-Za-zñÑáéíóúÁÉÍÓÚ0-9 .,-/_:)(]+' title='SOLO ALFANUMERICOS y  .,-/_:)(' maxlength='100' style='width:250px;font-weight:bold;' name='coments' id='coments'>";
echo $tcoments;
?>
</form>

[...]

但是当我将验证调用到另一个php中包含的函数时,它不会验证任何引用的声音或ñ(ñÑáéíóúÉÉÍÓÚ),但其他特殊字符,数字和常规字符仍然有效:

[...]

<form method="post" action="mod_netrep.php">
<?php 
$tcoments=tmenu("coments");
echo $tcoments;
?>
</form>

[...] 这是函数tmenu():

function tmenu($dato){
$tmenu="<input type='text' pattern='[A-Za-zñÑáéíóúÁÉÍÓÚ0-9 .,-/_:)(]+' title='SOLO ALFANUMERICOS y  .,-/_:)(' maxlength='100' style='width:250px;font-weight:bold;' name='$dato' id='$dato'>";
return $tmenu;
}

如果不清楚,请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可能使用不同的字符编码。

作为一般经验法则,您应该确保所有内容都是UTF-8!

这意味着,您的IDE,PHP文件,数据库,HTML元标记,一切!

如果您需要从其他编码转换字符串,请参阅此内容! http://php.net/manual/en/function.mb-convert-encoding.php