【问题标题】:How can I find Alphanumeric in a string如何在字符串中找到字母数字
【发布时间】:2012-12-12 16:10:53
【问题描述】:
$foo = "username122";

pre_match('Contain only aplhanumeric string', $foo){
   return true;
}

$foo 仅包含字母数字而非特殊字符 (=\*-[( 等)

【问题讨论】:

  • 添加标签是为了实际标记问题,还是只是想引起注意?

标签: php javascript regex


【解决方案1】:

ctype_alnum() 函数会帮你花花公子:)

【讨论】:

    【解决方案2】:

    使用正则表达式仅从头到尾匹配字母数字字符:

    /^[A-Za-z0-9]*$/
    

    例如:

    $testRegex = "/^[A-Za-z0-9]*$/";
    $testString = "abc123";
    if (preg_match($testRegex, $testString)) {
        // yes, the string is entirely alphanumeric
    } else {
        // no, the string is not entirely alphanumeric
    }
    

    【讨论】:

    • $testString = @"abc123"; - 为什么是@
    • @hakre - 我们现在不希望在分配字符串时出现任何错误,是吗? :D
    • @webnoob:好吧,@ 不包括这项任务。 ;)
    • @hakre - 是的,我猜不是。我想这只是为了给我们一些可以谈论的话题:)
    • 让我们看看 :) 我也将答案添加到了第一个作业行中。
    【解决方案3】:
    if(preg_match('~[^a-z0-9 ]~i', $foo)) {
    //DO SOMETHING HERE;
    }
    

    【讨论】:

      【解决方案4】:

      这样的正则表达式不会在 PHP 和 JavaScript 之间改变。在 JavaScript 中它是一个对象,而在 PHP 中它是一个字符串,但模式还是一样的:

      /^[a-z0-9]+$/i
      

      其中^ 表示字符串的开头,$ 表示字符串的结尾。接下来,a-z 匹配任何字母,0-9 匹配任何数字。 + 声明之前的模式可以重复一次或多次。 i 修饰符使a-z 部分不区分大小写,因此大小写匹配。

      在 JavaScript 中测试:

      /^[a-z0-9]+$/i.test("Foo123"); // true
      

      在 PHP 中测试:

      preg_match("/^[a-z0-9]+$/i", "Foo123"); // 1
      

      使用 PHP,您可以选择使用 POSIX 字符类,例如 :alnum:。请注意,这在 JavaScript 中不起作用:

      preg_match("/^[[:alnum:]]+$/i", "Foo123"); // 1
      

      实际上有一个更简单的 PHP 测试方法,使用 Ctype functions,特别是 ctype_alnum 函数,它将返回一个布尔值,说明给定字符串中的所有字符是否都是字母数字:

      ctype_alnum("Foo123"); // true
      ctype_alnum("Foo!23"); // false
      

      【讨论】:

      • thanx itz 当我输入 $foo = "username123?*-=" 它给了我期望的错误但是当我给 $foo = "username123?*-=\" 它没有给我错误。 ..
      • username123? 的值将失败。 \" 会在 JavaScript 和 PHP 中引发问题,除非你的 `` 被进一步转义。
      猜你喜欢
      • 2014-11-26
      • 1970-01-01
      • 2019-03-28
      • 2020-03-19
      • 2016-02-28
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      相关资源
      最近更新 更多