嗨,在我的项目中,我正在制作一个土耳其字母检查脚本。 如果用户输入密钥不是土耳其信,则发出警告。
这是我的jquery代码
$( "#singup_surname" ).keyup(function() {
var singup_surname = $( "#singup_surname" ).val().trim();
var request = $.ajax({
url: "check.php",
type: "POST",
encoding:"UTF-8",
data: { singup_surname_only:singup_surname},
dataType: "html"
});
request.done(function( msg ) {
msg=msg.trim();
if(msg=="ok"){
$('#singup_surname').removeClass('wrongField');
$('#singup_surname').addClass('trueField');
}else if(msg=="no"){
$('#singup_surname').removeClass('trueField')
$('#singup_surname').addClass('wrongField')
}else {
alert("database connection error");
}
});
});
例如,如果用户输入“ş”字母发送像这样
singup_surname_only=%C5%9F
在php端这是我的代码
$singup_surname_only=$_POST['singup_surname_only'];
if (isset($singup_surname_only)) {
$singup_surname_only=urldecode($singup_surname_only);
$tk = array('A','B','C','Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','V','Y','Z','a', 'b', 'c','ç', 'd', 'e', 'f', 'g','ğ', 'h', 'i','ı', 'j', 'k', 'l', 'm',
'n', 'o','ö', 'p', 'r', 's','ş','t','u','ü', 'v','y','z' ) ;
$tk=array("%C5%9F","ö");
$arr1 = str_split($singup_surname_only);
$letterCount = count($arr1);
$i=1;
while ($i<=$letterCount) {
if (in_array($arr1["$i"], $tk)) {
}else echo 'no';
$i++;
}
}
我所看到的是在我的数组'ş'字母中的php端变成这样的'Å'
如何解决这个问题非常感谢
答案 0 :(得分:0)
这就是你如何检查字符串$str
中是否只有土耳其字符:
$tkReg = sprintf('~^[%s]*$~u', join('', $tk));
$thereAreOnlyTurkishCharacters = preg_match($tkReg, $str) === 1;
var_dump($thereAreOnlyTurkishCharacters);