- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
PHP 验证 preg_matches 不工作
对于元字符,我知道它们很棘手,如果它们在方括号 [ ] 内,我认为它们会变成字面值而不是通配符,您不需要反斜杠转义。
对于$err_useridpmatch,我不明白为什么当我输入有效的输入时,错误仍然显示,而对于$err_passpmatch,当我故意输入包括?的错误字符串时,没有验证错误消息。
<?php
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['submit']))):
$userid = trim($_REQUEST['userid']);
$password = trim($_REQUEST['password']);
$err_useridpmatch = '';
$err_passpmatch = '';
if ( !(preg_match('/[^\/.%\\@?]/', $userid)) ) :
$err_useridpmatch = '<div class="error">User id should not have the following characters:/.%\@?</div>';
endif; // pattern doesn't match
if ( !(preg_match('/[A-Za-z0-9.\/]/', $password)) ) :
$err_passpmatch = '<div class="error">Password must only consist of lower or uppercase letters, numbers, full stop or forward slash</div>';
endif; // pattern doesn't match
endif; //form submitted
?>
______________________________________________________________________________
HTML section:
<div id="form-content">
<form name="orderForm" action="<?php echo $_SERVER['PHP_SELF'] ?>" class=""method="post" autocomplete="on">
<table id="formtable">
<tbody>
<br>
<br>
<b><p> Please enter your user id, password and click submit</p></b>
<br>
<tr>
<td class="label"><label for="userid">User ID: </label></td>
<td class="form-input"><input type="text" id="userid" name="userid" value="<?php echo h(@$values['userid']) ?>"/></td>
<td>
<?php if (isset($err_useridpmatch)) { echo $err_useridpmatch; } ?></td>
</tr>
<br>
<tr>
<td class="label"><label for="password">Password: </label></td>
<td class="form-input"><input type="password" id="password" name="password" value="<?php echo h(@$values['password']) ?>"/></td>
<td>
<?php if (isset($err_passwordpmatch)) { echo $err_passwordpmatch; } ?></td>
</tr>
</tbody>
</table>
<p class="required" id="required">Required fields are marked with an asterisk (<abbr class="req" title="required">*</abbr>).</p>
<table id="tablebutton">
<tr>
<td class="buttonfunction"><input type="button" onclick="window.close()" id="cancel" name="cancel" value="Cancel"/></td>
<td class="buttonfunction"><input type="submit" id="submit" name="submit" value="Submit"></td>
</tr>
<!-- <td class="buttonfunction"><input type="submit" onclick="RegisterValidation()" value="Submit">-->
</table>
</form>
</div><!--end form content section-->
<pre>
<?php
if(isset($_POST['submit'])){
print_r($_POST);
}
?>
</pre>
(1) 用户id不能有以下字符/.%@?(2) 密码只能由小写或大写字母、数字、句点或正斜杠组成
最佳答案
应该验证不能包含 /
的字符串的用户 ID 正则表达式, .
, %
, \
, @
和 ?
将是
if ( !(preg_match('/^[^\/.%\\\\@?]*$/', $userid)) )
参见 Regulex graph :
只能由小写或大写字母、数字、句点或正斜杠组成的密码正则表达式要简单得多:
if ( !(preg_match('/^[A-Za-z0-9.\/]*$/', $password)) )
查看此 Regulex graph :
详情
'\\\\'
^
不在未转义的 [
之后匹配字符串的开头$
如果在字符类之外,则匹配字符串的结尾*
是匹配前面模式部分的 0 次或多次重复的量词( abc*
匹配 ab
、 abc
、 abcc
、 abccccc
等)。使用 +
匹配 1 次或多次重复。关于php - 如何使用 preg_match 验证无字符/.%\@?在输入字段中,只有 A-Za-z0-9./在另一个输入字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623695/
我需要以下正则表达式,允许 [a-zA-Z]+ 或 [a-zA-Z]+[ \\-]{0,1}[a-zA-Z]+ 所以我想在 a-zA-Z 字符之间允许无限的减号和空格 示例: sdfsdfdsf-sf
我的电子邮件验证脚本中有以下代码。我想了解有关变量reg的更多信息,但不知道如何查找相关信息,因为我不知道其语法叫什么。有人可以引导我找到正确的资源或告诉我这种语法的名称吗? function val
我试图写一个正则表达式来匹配字符串形式: "[A-Za-z][A-Za-z]-[A-Za-z][A-Za-z]_[match all chars]" 我要匹配的字符串必须是这种形式,包括连字符和下划线
正则表达式 ^[A-Za-Z ][A-Za-z0-9 ]* 描述“第一个字母应该是字母表,其余字母可能是字母数字”。但是我怎么也允许特殊字符呢?当我输入“C#”时出现错误。 如何输入特殊字符且首字母应
^[a-zA-Z] 和 [^a-zA-Z] 有区别吗? 当我 checkin C# 时, Regex.IsMatch("t", "^[a-zA-Z]") // Returns true (I thi
我试图让我的 NSScanner 尝试扫描以下正则表达式:[a-zA-Z_][a-zA-Z0-9_]*,但遇到困难。 我可以尝试先读取 a-Z_,然后尝试附加 a-Z0-9_。 我想知道是否有更简单/
我希望能够在没有 Microsoft 语言扩展恶作剧的情况下编译我的 VS2017 C++ 项目。 根据此处的回复,/Za compiler directive does not compile sy
我需要一个满足以下规则的正则表达式: 长度必须介于8-32个字符之间 必须以字母开头 不得包含任何空格 不得包含任何特殊字符 我在google的帮助下尝试了自己的表达式,例如^([a-zA-Z][a-
我有这个用于电子邮件验证的正则表达式(假设只有 x@y.com、abc@defghi.org、something@anotherhting.edu 是有效的) /^[a-zA-Z0-9]+@[a-zA
我正在将 Entity Framework 与 PostgreSQL 结合使用。我需要编写一个遵循这种格式的查询: await Context.Database.ExecuteSqlCommandAs
这个问题已经有答案了: Reference - What does this regex mean? (1 个回答) 已关闭 3 年前。 我刚刚开始使用正则表达式,正在解决这个问题 question其
我正在学习正则表达式,目前看来我很困惑。 val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g, ''); 在上面的表达式中 1) 哪一部分表示不包含空格?因为我试
我正在尝试通过Vagrant Docker规定运行Docker容器: d.run "tomcat:8.0", args: "-it -d -p 8888:8888 --name tomcat8" Va
我知道正则表达式模式必须匹配以以下字符的组合和重复开头的字符串: a-z A-Z 一个空白字符 并且对字符串的结尾方式没有限制! 第一个案例 所以像 uoiui897868 这样的字符串(任何只以空格
如何删除字母而不是数字之间的空格 例如: 输入 I ES P 010 000 000 000 000 000 001 001 000 000 IESP 000 000 输出 IESP 010 000
我正在使用 来确保输入的值仅包含字母表,它工作正常,但不允许在字符串中占用空间。 如何在上述模式中加入空格字符? 提前致谢。 最佳答案 只需将空格添加到正则表达式。 如果您想要任何空格,而不仅仅是
我正在编写一个解决方案,用于扫描 iOS 南非驾驶执照背面的 PDF417 条形码 ( http://en.wikipedia.org/wiki/PDF417 )。我找不到任何有关如何解码条形码的文档
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我有这个代码; $('[data-question=502] textarea').bind('input propertychange', function() { $(this).val
引用此讨论:Decode South African (ZA) Drivers License 请协助我尝试在 Android 上的 Java 中创建 PublicKey 实例时似乎遇到错误。我已粘贴
我是一名优秀的程序员,十分优秀!