‘壹’ 用php正则判断 只能输入 中文、韩文、日文、因为(大小写) 除外的一律禁止的。 有谁可以么
/^[\x{4e00}-\x{9fa5}\x{3130}-\x{318F}\x{0800}-\x{4e00}a-zA-Z]+$/u
别忘了最后那个修正符“ u ”,少了它可不行。
再补充下,要使用这个正则,你的网页编码必须是UTF-8,如果是GB2312,那不要想了。
‘贰’ UTF-8的正则表达式匹配的汉字如何
为了判断输入内容是否包含非法字符,我们可以通过使用正则表达式来进行验证。例如,以下代码用于匹配UTF-8编码的中文字符、字母、数字和下划线:
如果(!preg_match('/^[\u4e00-\u9fa5a-zA-Z0-9_]+$/U', $str)))
这段代码表示如果输入的字符串 $str 包含非法字符,则代码将输出“输入的结构包含非法字符”。否则,输出“输入的结构是完全合法的”。确保正则表达式与UTF-8编码兼容。
在JavaScript中,判断字符串是否全部为中文也是非常简单。例如:
如果 (/^[\u4e00-\u9fa5]+$/。test(STR)) {alert("所有字符串都是中文") }否则{alert("字符串不全是中文")}
在PHP中,我们需要使用正则表达式来匹配中文字符,例如:
如果(preg_match('/^[\x{4e00}-\x{9fa5}]+$/U', $str)) {print("所有字符串都是中文") }否则{print("字符串不全是中文")}
对于PHP的规则,`\x{4e00}-\x{9fa5}` 表示字符和字符集的概念。当表示一个16进制数时,需要注意1-2位或4位的表示方式,并确保在使用十六进制时正确添加括号,同时与`U`修饰符一起使用以确保兼容性。
在实际应用中,正确使用正则表达式可以准确判断输入内容是否包含非法字符。在PHP中,我们需要考虑到十六进制表示、字符集范围以及修饰符的正确使用,以确保表达式的正确性和兼容性。
为了验证上述正则表达式的功能,可以使用以下测试代码(保存为.php文件):
如果($action = '装饰'){$str = $_POST['dir'];如果(!preg_match('/[\xA1-\xFFa-zA-Z0-9_]+$/U', $str))GB2312汉字字母数字下划线的正则表达式如果(!preg_match('/^[\x{4e00}-\x{9fa5}a-zA-Z0-9_]+$/U', $str))UTF-8中文字符的字母数字下划线的正则表达式{echo '输入的结构包含非法字符';}其他{echo '输入的结构是完全合法的,通过!'}}
通过上述示例和测试代码,我们可以理解如何在PHP中使用正则表达式来匹配UTF-8编码的中文字符。希望对您有所帮助。
‘叁’ 在Thinkphp 中怎么实现中英文切换啊
我用一维数组写个实例,看懂了再自己去改:
//数组
$info = array(
'id' => '1',
'content' => '你好',
'en_content' => 'welcome'
);
//循环对比
foreach($info as $key => $value){
if ( ereg('['.chr(0xa1).'-'.chr(0xff).']', $value) ){ //判断是不是纯中文,是为 true
//是纯中文时,去相应的语言包中做对比,查找当前的中文 $value 对应的英文是什么,并把找到的英文替换掉当前这个中文
$info[$key] = '匹配成功后的英文';
}elseif ( ereg('[a-zA-Z]', $value) ){ //判断是不是纯英文,是为true
//是纯英文时,去相应的语言包中做对比,查找当前的英文 $value 对应的中文是什么,并把找到的中文替换掉当前这个英文
$info[$key] = '匹配成功后的中文';
}else{
// echo '既不是纯中文,也不是纯英文,可能有数字混在其中,或者是id 值';
}
}
return $info; //最后直接返回$info 即为中英文互换后的数组
‘肆’ PHP中当前文件为GBK或GB2312编码,怎么用正则表达式取汉字
if (ereg('/[\u4E00-\u9FA5]/',$str)){
$chn = str_replace('/[^\u4E00-\u9FA5]/','', $str);
}
判断是否有中文,$chn=过去非中文字符
‘伍’ php中 提取中文字符首个拼音字母
$fchar = ord($s0{0}); //获取字符串的第一个字节
//判断是不是英文字符,如果是则直接返回该字母大写
if ($fchar >= ord(“A”) and $fchar <= ord(“z”))return strtoupper($s0{0});
//以下代码用字符编码转换函数,通过两种字符集编码转换的对比,判断字符串是哪种字符集
//最终取字符串为GB字符集
$s1 = @iconv(“UTF-8″, “GBK”, $s0);
$s2 = @iconv(“GBK”, “UTF-8″, $s1);
if ($s2 == $s0) {
$s = $s1;
} else {
$s = $s0;
}
//计算给出的字符串的前两个字节内码,然后再根据结果判断在GB字符集中的位置,从而根据位置与拼音的关系,最终得出拼音字母
$asc = ord($s{0}) * 256 + ord($s{1}) – 65536;
‘U’、‘V’对中文无效,以下是对H 拼音的计算:
if($asc>=-17922 and $asc<=-17418)return "H";
‘陆’ PHP判断IP是中国IP还是外国IP
//返回ip所在的区域外国ip精确到国名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能获取";
}
}catch(Exception$e){
return"未能获取";
}
}