首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式,检测右字符

正则表达式,检测右字符
EN

Stack Overflow用户
提问于 2016-10-13 20:05:11
回答 2查看 48关注 0票数 1

我创建了这个函数,它允许我发送一个字符串作为参数,然后我可以选择id是否想要检查英语,瑞典语或数字。如果它包含除accepted之外的任何内容,函数将返回false,否则返回true。

示例:

代码语言:javascript
复制
$text = 'I like pancakes';  //This should return as true
if(isCharValid($text, 'english')) {
   die('returned as true');
}
else {
   die('returned as false');
}

然而,我在让正则表达式检测到我希望它检测的内容时遇到了问题,你可以在代码的注释中看到我想让它检测的内容。

这是我的函数

代码语言:javascript
复制
function isCharValid($string, $type){ 
    if($type == 'english') { //String may contain A-Z, a-z, 0-9 and whitespace
        return !preg_match('/[^A-Za-z0-9\s]/', $string);
    }
    else if($type == 'swedish'){ //String may contain A-Ö,a-ö,0-9 and whitespace
        return !preg_match('/[^A-Za-z0-9åäöÅÄÖ\s]/', $string);
    }
    else if($type == 'number'){ //String may contain numbers 0-9, no WHITESPACES
        return !preg_match('/[^0-9]*$/', $string);
    }
    else {
        return false;
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-10-13 20:09:08

您可以要求整个字符串由这些字符组成,方法是使用^ / $将模式括起来,并将+量词添加到正字符类中

代码语言:javascript
复制
function isCharValid($string, $type){ 
    if($type == 'english') { //String may contain A-Z, a-z, 0-9 and whitespace
        return preg_match('/^[A-Za-z0-9\s]+$/u', $string);
    }
    else if($type == 'swedish'){ //String may contain A-Ö,a-ö,0-9 and whitespace
        return preg_match('/^[A-Za-z0-9åäöÅÄÖ\s]+$/u', $string);
    }
    else if($type == 'number'){ //String may contain numbers 0-9, no WHITESPACES
        return preg_match('/^[0-9]+$/Du', $string);
    }
    else {
        return false;
    }
}

然后,使用

代码语言:javascript
复制
$text = 'I like pancakes';  //This should return as true
$type = "english";
if(isCharValid($text, $type)) {
   die(returned as true);
}
else {
   die(returned as false);
}

请注意,将/D修饰符添加到最后一个数字正则表达式中是一个好主意,以确保带有数字和末尾换行符的字符串不能匹配。

票数 0
EN

Stack Overflow用户

发布于 2016-10-13 20:09:54

联系方式:isCharValid($text,$type)

代替isCharValid($text)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40020529

复制
相关文章

相似问题

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