【问题标题】:php code to validate alphanumeric string用于验证字母数字字符串的 php 代码
【发布时间】:2013-04-01 23:17:24
【问题描述】:

我想在 php 的表单文本框中验证字母数字字符串。它可以包含数字和特殊字符,如“。”和 '-' 但字符串不应仅包含数字和特殊字符。请帮忙写代码。

【问题讨论】:

  • 您的验证结果究竟应该是什么?您尝试了什么?
  • 向我们展示一些有效和无效的输入
  • 它基本上是一个表单中的“asset_details”输入框。它可以接受字母数字值和“.”。和 ”-”。如果用户只输入数字或只输入“。”或“-”然后它应该给出一个警告说不是一个有效的输入类型。简而言之,它应该接受字母数字和“。”的组合。或“-”
  • 例如 jay123: 有效 1234:invalid ....: 无效 jay.kum:valid
  • @jayantkumar 我的回答是否满足您的需求?

标签: php regex character


【解决方案1】:

使用ctype_alnum,如下所示:

if(ctype_alnum($string)){
    echo "Yes, It's an alphanumeric string/text";
}
else{
    echo "No, It's not an alphanumeric string/text";
}

阅读php.net上的功能说明

【讨论】:

  • 只是想澄清一下“ctype_alnum()”函数只检查字符串是否包含所有字符、所有数字或两者。如果您只想包含最初要求的字符和数字,它将不起作用。
【解决方案2】:

试试这个

// Validate alphanumeric
if (preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $input)) {
    // Valid
} else {
    // Invalid
}

【讨论】:

  • 此解决方案不适用于土耳其语字符。谢谢
【解决方案3】:

代码:

if(preg_match('/[^a-z_\-0-9]/i', $string)) { echo "not valid string"; }

解释:

  • [] => 字符类定义
  • ^ => 否定类
  • a-z => 从 'a' 到 'z' 的字符
  • _ => 下划线
  • - => 连字符“-”(你需要转义它)
  • 0-9 => 数字(从零到九)

正则表达式末尾的“i”修饰符用于“不区分大小写”,如果您不输入,则需要在代码中添加大写字符,然后执行 A-Z

【讨论】:

    【解决方案4】:

    我对正则表达式有点陌生,但我会这样做:

    preg_match('/^[\w.-]+$/', input)
    

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多