如何过滤所有特殊字符(下划线旁边)显示允许和不允许
How to filter all special char (beside underscores ) for display allow and not allow?
如何过滤所有特殊字符(下划线旁边)显示允许和不允许?
在我的愿望,我将只允许文本,数字和下划线
但是当我测试这段代码时,我尝试在输入中填充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>
check_char.php
<?php
$strUsername = $_POST[CUsername];
$special_char_total = strlen(preg_replace('@[a-z0-9_'-'.]@', '', $strUsername));
$text_and_number_char_total = strlen(preg_replace('@[^a-z0-9]@', '', $strUsername));
if ($special_char_total > 0)
{ echo "Username can only contain letters, numbers and underscores (and no spaces!)"; }
elseif ($text_and_number_char_total < 1)
{ echo "Username must have at lest 1 letter or number"; }
else
{
echo"$_POST[CUsername] available.";
}
?>
我要做的是检查允许的字符并计算这些字符。看看下面的操作是否适合你:
<?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";
}
?>
相关文章:
- Don'不允许将焦点集中在自动完成的选择上
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- js文件未加载js控制台say's”;不允许加载本地资源”;
- Jquery不允许来自多个选择列表的相同值
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- 不允许在文本框中使用小数
- 日历显示不正确
- 引导程序下拉列表显示不正确
- Highcharts热图显示不正确
- 如何使标头动画仅在javascript中显示onload事件(不允许jQuery)
- 不允许立即显示所有弹出窗口,只需单击时必须打开一个弹出窗口
- 我如何找出是什么脚本导致页面不允许突出显示文本或右键单击
- 显示 HTML5 视频控件,但不允许用户更改任何内容
- 显示页面的注释,但不允许添加新的注释
- 如何过滤所有特殊字符(下划线旁边)显示允许和不允许
- Extjs 4 Combo显示值,但不允许选择
- 是否有可能不允许iframe显示文件下载弹出
- Workaround Flash不允许从Javascript全屏显示
- 为什么我的谷歌地图API Ver3不允许我显示标记,但它会在方向上呈现标记
- 不允许用户使用php和MySQL选择现有用户名,如果用户选择现有用户名,则显示警告框