验证,javascript
我有以下代码:验证,javascript,javascript,validation,Javascript,Validation,我有以下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>sss</title> <me
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>sss</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type='text/javascript'>
function isAlphabet(obj){
var alphaExp = /[^a-z0-9_-]+/;
if(!obj.value.match(alphaExp)){
return true;
}
else{
alert('the bad symbols');
obj.focus();
return false;
}
}
</script>
</head>
<body>
<form action="/">
<input type='text' id='letters' onblur="isAlphabet(this)"/>
</form>
</body>
</html>
sss
功能isAlphabet(obj){
var alphaExp=/[^a-z0-9_u-]+/;
如果(!对象值匹配(alphaExp)){
返回true;
}
否则{
警报(“坏符号”);
obj.focus();
返回false;
}
}
我想显示一个
警报()
,只显示验证失败的字符
例如:
如果输入包含“#abc”等符号,则警报消息应仅显示“#”。如何做到这一点?您可以在包含所有禁止符号(如alphaExp)的正则表达式上匹配所有,然后连接匹配项。您可以在包含所有禁止符号(如alphaExp)的正则表达式上匹配所有,然后连接匹配项。下面是一个简单的方法。。。但这并不是最有效的:
function isAlphabet(obj)
{
var val = obj.value;
var alphaExp = /[^a-z0-9_-]+/;
var valid = true;
var badchars = "";
for( a = 0; a < val.length; a++ )
{
if(val[a].match(alphaExp))
{
badchars += "," + val[a];
valid = false;
}
}
if( !valid )
{
alert("The following characters are not allowed: " + badchars.substr(1));
obj.focus();
}
return valid;
}
功能isAlphabet(obj)
{
var val=目标值;
var alphaExp=/[^a-z0-9_u-]+/;
var valid=true;
var badchars=“”;
对于(a=0;a
这里有一个简单的方法。。。但这并不是最有效的:
function isAlphabet(obj)
{
var val = obj.value;
var alphaExp = /[^a-z0-9_-]+/;
var valid = true;
var badchars = "";
for( a = 0; a < val.length; a++ )
{
if(val[a].match(alphaExp))
{
badchars += "," + val[a];
valid = false;
}
}
if( !valid )
{
alert("The following characters are not allowed: " + badchars.substr(1));
obj.focus();
}
return valid;
}
功能isAlphabet(obj)
{
var val=目标值;
var alphaExp=/[^a-z0-9_u-]+/;
var valid=true;
var badchars=“”;
对于(a=0;a
在本例中,您匹配的字符不属于提供的范围。因此,您可以将匹配的文本放入反向引用并使用它
或者,您可以构造一个
Regexp
对象并使用它的属性。在这种情况下,您匹配的字符不属于提供的范围。因此,您可以将匹配的文本放入反向引用并使用它
或者,您可以构造一个
Regexp
对象并使用它的属性。如果您使用g
修饰符,您可以获取.match()
以返回一个匹配数组(在您的情况下是无效的字符),然后您可以直接显示它们
请参阅本页下约1/3的“字符串匹配(模式)”:
str然后包含[“o”、“or”、“ro”]如果使用
g
修饰符,可以获取.match()
以返回匹配数组(在您的情况下为无效字符),然后您可以直接显示它们
请参阅本页下约1/3的“字符串匹配(模式)”:
str然后包含[“o”、“or”、“ro”]使用与允许的字符匹配的正则表达式来获取删除这些字符的字符串。如果字符串包含任何内容,则验证失败:
function isAlphabet(obj) {
var alphaExp = /[a-z0-9_-]+/g;
var illegal = obj.value.replace(alphaExp, '');
if (illegal.length){
alert('Input contains the characters '+illegal+' which are not allowed.');
obj.focus();
return false;
} else {
return true;
}
}
使用与允许的字符匹配的正则表达式来获取删除这些字符的字符串。如果字符串包含任何内容,则验证失败:
function isAlphabet(obj) {
var alphaExp = /[a-z0-9_-]+/g;
var illegal = obj.value.replace(alphaExp, '');
if (illegal.length){
alert('Input contains the characters '+illegal+' which are not allowed.');
obj.focus();
return false;
} else {
return true;
}
}
这在早于8版的Internet Explorer中不起作用。您必须使用val.charAt(a)或val.substr(a,1)而不是val[a]。这在早于版本8的Internet Explorer中不起作用。必须使用val.charAt(a)或val.substr(a,1)而不是val[a]。