【问题标题】:html5 pattern special characters not working from functionhtml5 模式特殊字符在函数中不起作用
【发布时间】: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


【解决方案1】:

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

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

也就是说,你的 IDE、PHP 文件、数据库、HTML 元标记,一切!

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

【讨论】:

    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多