【问题标题】:How to check a regex match with PHP? [closed]如何检查与 PHP 的正则表达式匹配? [关闭]
【发布时间】:2014-09-15 23:27:09
【问题描述】:

我收到此警告:

警告:preg_match():第 116 行 /Users/mac/Sites/Database/FTTLDatabase/functionLibrary.php 中的分隔符不能是字母数字或反斜杠

使用此 PHP 验证代码:

function validateCardSelect($cardType)
    { // CARD TYPE ***
        if(preg_match('Please choose', $cardType))
                        {
                        return false;
                        }
                        else
                        {
                        return true;
                        }
    }

我所有其他的正则表达式都可以工作,但在这种情况下,它是一个选择框并且不起作用:(

【问题讨论】:

  • 这不是正则表达式。正则表达式以分隔符开头和结尾,通常是 / - 几乎就是该错误消息所说的内容。
  • 你正在做的是,我会说,不正确。我想Please choose 是您默认显示的消息。那么是什么让你认为如果发送的值不等于Please choose 是一个有效值呢?您应该有一个可接受值的列表并与之进行比较。
  • @php_nub_qq 好点,我什至没有检查代码的逻辑,我只是​​认出了警告。我猜有两个问题。
  • 顺便说一下,如果您打算处理实际的支付卡号,请不要这样做。仅当您是在线安全方面的专家时,您才应该这样做 - 应该将其交给可以为您处理的第三方支付处理程序。
  • 请停止这种模式if(a) return false; else return true; return !a 更好。

标签: php regex function validation


【解决方案1】:

您需要在正则表达式周围使用分隔符,例如/,见下文:

function validateCardSelect($cardType)
    { // CARD TYPE ***
        if(preg_match('/Please choose/', $cardType))
                        {
                        return false;
                        }
                        else
                        {
                        return true;
                        }
    }

编辑:虽然这回答了您最初的问题,但请阅读 cmets 以解决您的问题。 看起来好像您的逻辑不正确,并且正如其他人所说,安全性可能是一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多