【发布时间】:2017-09-18 10:53:27
【问题描述】:
让我们看看我能不能解释清楚,因为这不是一个容易的话题: 我在表单中使用 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;
}
如果有什么不清楚的地方请告诉我。提前致谢。
【问题讨论】:
-
听起来您可能在某处使用了错误的字符编码。两个 PHP 文件都是 UTF-8 吗?
-
好的,非常感谢delboy1978uk,看来这就是问题所在,愚蠢的我。我刚刚将外部 php(未编码)设置为 UTF-8,现在它可以工作了。请发布答案,以便我将其标记为正确的解决方案,再次感谢!
-
谢谢,已添加! :-)
标签: php regex html function validation