Javascript 如何过滤显示允许和不允许的所有特殊字符(下划线旁边)?
如何过滤显示允许和不允许的所有特殊字符(下划线旁边) 根据我的意愿,我只允许文本、数字和下划线 但当我测试这段代码时,我会尝试在它将显示的输入中填充Javascript 如何过滤显示允许和不允许的所有特殊字符(下划线旁边)?,javascript,php,Javascript,Php,如何过滤显示允许和不允许的所有特殊字符(下划线旁边) 根据我的意愿,我只允许文本、数字和下划线 但当我测试这段代码时,我会尝试在它将显示的输入中填充123456abcd& 123456abcd&available如何过滤所有特殊字符(下划线旁) index.php <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script langua
123456abcd&
123456abcd&available
如何过滤所有特殊字符(下划线旁)
index.php
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'check_char.php';
var pmeters = "CUsername=" + encodeURI( document.getElementById("CheckUsername").value);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "..";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = 'AjaxPHPRegister3.php';
}
else
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
<input size="30" tabindex="1" type="text" name="CheckUsername" id="CheckUsername" onchange="JavaScript:doCallAjax();"
value="<?php if(isset($_POST['CheckUsername'])) echo $_POST['CheckUsername']; ?>">
<span id="mySpan"></span>
var-HttPRequest=false;
函数doCallAjax(){
HttPRequest=false;
如果(window.XMLHttpRequest){//Mozilla,Safari,。。。
HttPRequest=新的XMLHttpRequest();
if(HttPRequest.overrideMimeType){
HttPRequest.overrideMimeType('text/html');
}
}如果(window.ActiveXObject){//IE
试一试{
HttPRequest=新的ActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
HttPRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){}
}
}
如果(!HttPRequest){
警报(“无法创建XMLHTTP实例”);
返回false;
}
var url='check_char.php';
var pmeters=“CUsername=“+encodeURI(document.getElementById(“CheckUsername”).value);
HttPRequest.open('POST',url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
HttPRequest.setRequestHeader(“内容长度”,pmeters.length);
setRequestHeader(“连接”、“关闭”);
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange=函数()
{
if(HttPRequest.readyState==3)//加载请求
{
document.getElementById(“mySpan”).innerHTML=“…”;
}
if(HttPRequest.readyState==4)//返回请求
{
如果(HttPRequest.responseText=='Y')
{
window.location='ajaxppregister3.php';
}
其他的
{
document.getElementById(“mySpan”).innerHTML=HttPRequest.responseText;
}
}
}
}
我要做的是检查允许的字符并计数。查看以下选项是否适用于您:
<?php
$strUsername = $_POST[CUsername];
$strlen = strlen($strUsername);
$valid_char_count = strlen(preg_replace('/[^a-zA-Z0-9_]/', '', $strUsername));
if (($valid_char_count < $strlen) || $valid_char_count < 1) {
if($valid_char_count < $strlen) {
echo "Username can only contain letters, numbers and underscores (and no spaces!)";
}
if ($valid_char_count < 1) {
echo "Username must have at lest 1 letter or number";
}
} else {
echo $strUsername." available";
}
?>
@uzasnik。。。这可能是注释问题的原因是index.php
ok,我认为ajax无法将像&
这样的特殊字符发送到check\char.php
pageok,我在输入中填充abcd1234&&&
时进行了测试,显示用户名只能包含字母、数字和下划线(并且没有空格!)
因为abcd1234&&&&&
have&&&&&&&
是一种特殊的图表,这很奇怪。我已经测试了上面的PHP脚本,它适用于我的abcd1234&&&input=>它返回“用户名只能包含字母、数字和下划线(并且没有空格!)”是否应用文件index.PHP
<?php
$strUsername = $_POST[CUsername];
$strlen = strlen($strUsername);
$valid_char_count = strlen(preg_replace('/[^a-zA-Z0-9_]/', '', $strUsername));
if (($valid_char_count < $strlen) || $valid_char_count < 1) {
if($valid_char_count < $strlen) {
echo "Username can only contain letters, numbers and underscores (and no spaces!)";
}
if ($valid_char_count < 1) {
echo "Username must have at lest 1 letter or number";
}
} else {
echo $strUsername." available";
}
?>