PHP 判断数字,字母,特殊符号,中文

代码如下:

/**
 * 0 包含数字,字母,特殊符号
 * @param unknown $str
 * @return 0 - 数字字母符号; 1 - 数字; 2 - 字母; 3 - 符号; 4 - 数字字母; 5 - 数字符号; 6 - 字母符号
 */
function checkStr($str) {
	$output = '';
	$ch = preg_match ( '/[' . chr ( 0xa1 ) . '-' . chr ( 0xff ) . ']/', $str );		// 汉字
	$num = preg_match ( '/[0-9]/', $str );											// 数字
	$letter = preg_match ( '/[a-zA-Z]/', $str );									// 字母
	$symbol = preg_match ( '/[\Q~!@#$%^&*()+-_=.:?<>\E]/', $str );					// 特殊符号
	
	echo $ch . " - " . $num . " - " . $letter . " - " . $symbol . "<br>";
	
	if($num && !$letter && !$symbol)
		return 1;
	elseif(!$num && $letter && !$symbol)
		return 2;
	elseif(!$num && !$letter && $symbol)
		return 3;
	elseif($num && $letter && !$symbol)
		return 4;
	elseif($num && !$letter && $symbol)
		return 5;
	elseif(!$num && $letter && $symbol)
		return 6;
	elseif($num && $letter && $symbol)
		return 0;
	return 0;
}

$pwd = "123";
$pwd = "asdfa";
$pwd = "@#:?";
$pwd = "adsfa1121";
$pwd = "121@@";
$pwd = "asdaf><";
$pwd = '$Yh_2050^';

echo $pwd . " : " . checkStr ( $pwd );

 

PHP正则匹配反斜杠'\'和美元'$'

$content = '1111111<td>2222222<\/td>3$'; 

//' \\\\\/ ' 第1个'\'转义字符串的第2个'\',字符串为'\' 
//第3个'\'转义第4个'\',相当于 字符串 '\' 
//第5个'\'转义第4个'/',相当于 字符串 '/' 
//字符合起来为'\\/' 两个'\\' 正则表达式看做'\' 
$pattern = '/<td>([0-9]{7,})<\\\\\/td>\d\\$$/'; 

 

test.php

<?php
$content = '1111111<td>2222222<\/td>3$';
 
//'\\\\\/' 第1个'\'转义字符串的第2个'\',字符串为'\' 
//第3个'\'转义第4个'\',相当于字符串'\' 
//第5个'\'转义第4个'/',相当于字符串'/' 
//字符合起来为'\\/' 两个'\\' 正则表达式看做'\' 
$pattern = '/<td>([0-9]{7,})<\\\\\/td>\d\\$$/';
 
$result = preg_match_all($pattern, $content, $match_result);
     
if($result)
    print_r($match_result);
else
    echo("not match");

改进如下:

$content = '1111111<td>2222222<\/td>3$'; 
$pattern = "!<td>(\d{7,})<\Q\/\Etd>\d\Q$\E!"; 
$result = preg_match_all($pattern, $content, $m);     
if($result) 
    print_r($m); 
else
    echo("not match");

输出结果:

Array
(
    [0] => Array
        (
            [0] => <td>2222222<\/td>3$
        )
    [1] => Array
        (
            [0] => 2222222
        )
)