首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >preg_match特殊字符

preg_match特殊字符
EN

Stack Overflow用户
提问于 2010-10-15 05:04:58
回答 6查看 76.3K关注 0票数 16

如何使用preg_match查看字符串中是否存在特殊字符[^'£$%^&*()}{@:'#~?><>,;@|\-=-_+-¬`]

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-15 05:10:00

[\W]+将匹配任何非单词字符。

但要仅匹配问题中的字符,请使用以下命令:

代码语言:javascript
复制
  $string="sadw$"
  if(preg_match("/[\[^\'£$%^&*()}{@:\'#~?><>,;@\|\\\-=\-_+\-¬\`\]]/", $string)){
   //this string contain atleast one of these [^'£$%^&*()}{@:'#~?><>,;@|\-=-_+-¬`] characters
  }
票数 19
EN

Stack Overflow用户

发布于 2016-02-04 19:57:37

我的函数让生活变得更简单。

代码语言:javascript
复制
function has_specchar($x,$excludes=array()){
    if (is_array($excludes)&&!empty($excludes)) {
        foreach ($excludes as $exclude) {
            $x=str_replace($exclude,'',$x);        
        }    
    }    
    if (preg_match('/[^a-z0-9 ]+/i',$x)) {
        return true;        
    }
    return false;
}

第二个参数($excludes)可以与您希望忽略的值一起传递。

用法

代码语言:javascript
复制
$string = 'testing_123';
if (has_specchar($string)) { 
    // special characters found
} 

$string = 'testing_123';
$excludes = array('_');
if (has_specchar($string,$excludes)) { } // false
票数 7
EN

Stack Overflow用户

发布于 2019-05-29 00:30:15

对我来说,这是最有效的:

代码语言:javascript
复制
$string = 'Test String';

$blacklistChars = '"%\'*;<>?^`{|}~/\\#=&';

$pattern = preg_quote($blacklistChars, '/');
if (preg_match('/[' . $pattern . ']/', $string)) {
   // string contains one or more of the characters in var $blacklistChars
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3937569

复制
相关文章

相似问题

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