首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式允许A-Z,- and‘

正则表达式允许A-Z,- and‘
EN

Stack Overflow用户
提问于 2011-09-12 16:57:33
回答 6查看 7.8K关注 0票数 0

我正在尝试让这个正则表达式来验证一个仅允许A - Z,‘和-的Name字段。

到目前为止,我正在使用这个,除了它不允许撇号之外,它工作得很好。

代码语言:javascript
运行
复制
if (preg_match("/[^a-zA-Z'-]+/",$firstname)) {
            // do something
        }

我希望它只允许A-Z,-(破折号)和一个‘(撇号)。它适用于A-Z和-但仍然不适用于‘

有没有人能举个例子?

谢谢

EN

Stack Overflow用户

发布于 2011-09-12 17:07:23

你的代码已经完成了你想要做的事情:

代码语言:javascript
运行
复制
<?php

$data = array(
    // Valid
    'Jim',
    'John',
    "O'Toole",
    'one-two',
    "Daniel'Blackmore",

    // Invalid
    ' Jim',
    'abc123',
    '$@#$%@#$%&*(*&){}//;;',

);

foreach($data as $firstname){
    if( preg_match("/[^a-zA-Z'-]+/",$firstname) ){
        echo 'Invalid: ' . $firstname . PHP_EOL;
    }else{
        echo 'Valid: ' . $firstname . PHP_EOL;
    }
}

..。打印:

代码语言:javascript
运行
复制
Valid: Jim
Valid: John
Valid: O'Toole
Valid: one-two
Valid: Daniel'Blackmore
Invalid:  Jim
Invalid: abc123
Invalid: $@#$%@#$%&*(*&){}//;;

单引号在正则表达式中没有任何特殊含义,因此不需要特殊处理。在[]中,减号(-)表示范围;如果需要文字-,它必须是第一个或最后一个字符,就像在代码中一样。

话虽如此,错误(如果有的话)在其他地方。

票数 2
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7385420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档