如何使用preg_match
查看字符串中是否存在特殊字符[^'£$%^&*()}{@:'#~?><>,;@|\-=-_+-¬`]
?
答案 0 :(得分:11)
[\W]+
将匹配任何非单词字符。
答案 1 :(得分:10)
使用preg_match。此函数接受正则表达式(模式)和主题字符串,如果匹配则返回1
,如果不匹配则返回0
,如果发生错误则返回false
。
$input = 'foo';
$pattern = '/[\'\/~`\!@#\$%\^&\*\(\)_\-\+=\{\}\[\]\|;:"\<\>,\.\?\\\]/';
if (preg_match($pattern, $input)){
// one or more matches occurred, i.e. a special character exists in $input
}
您还可以为执行正则表达式匹配功能指定标志和偏移量。请参阅上面的文档链接。
答案 2 :(得分:4)
我的功能让生活更轻松。
$string = 'testing_123';
if (has_specchar($string)) {
// special characters found
}
$string = 'testing_123';
$excludes = array('_');
if (has_specchar($string,$excludes)) { } // false
第二个参数($ excludes)可以与您想要忽略的值一起传递。
用法
(?i)
答案 3 :(得分:0)
您可以使用preg_quote
来转义字符以在正则表达式中使用:
preg_match('/' . preg_quote("[^'£$%^&*()}{@:'#~?><>,;@|\-=-_+-¬`]", '/') . '/', $string);
答案 4 :(得分:0)
对我来说,这最有效:
$string = 'Test String';
$blacklistChars = '"%\'*;<>?^`{|}~/\\#=&';
$pattern = preg_quote($blacklistChars, '/');
if (preg_match('/[' . $pattern . ']/', $string)) {
// string contains one or more of the characters in var $blacklistChars
}
答案 5 :(得分:0)
这适用于所有PHP版本。结果是布尔型,需要相应地使用。
要检查ID是否包含字符串,可以使用以下字符:
preg_match( '/[a-zA-Z]/', $string );
要检查字符串是否包含数字,可以使用它。
preg_match( '/\d/', $string );
现在要检查字符串是否包含特殊字符,应使用此字符。
preg_match('/[^a-zA-Z\d]/', $string);
答案 6 :(得分:0)
如果你想匹配特殊字符
preg_match('/[\'\/~`\!@#\$%\^&\*\(\)_\-\+=\{\}\[\]\|;:"\<\>,\.\?\\\]/', $input)