Regular expression , for only one word 
July 23rd, 2005, 08:07 PM
| | |
hi,
I need to verify that the user enter only one word in a textbox.
So i thought to add a regularexpression validator and disallow the user
to enter a space between the letters he wrote.
how can i do that ?
thx
*** Sent via Developersdex http://www.developersdex.com *** | 
July 23rd, 2005, 08:07 PM
| | | | re: Regular expression , for only one word
Joe Abou Jaoude wrote:
[color=blue]
> I need to verify that the user enter only one word in a textbox.
> So i thought to add a regularexpression [...][/color]
<input ... onchange="if (yourRegExp.test(value)) alert('Invalid input')">
or
<input ... onchange="if (!yourRegExp.test(value)) alert('Invalid input')">
What you replace "yourRegExp" with depends on what you consider to be a
word. Take a look at this table for some possible values:
<body>
<script type="text/javascript">
var aRegExps = [
/^\S+$/,
/^\w+$/,
/\s/,
/\W/,
/^[a-z]+$/i
],
aStrings = [
"Foobar",
"Foo Bar",
"Foo_Bar",
"Foo.Bar",
"Foo-Bar",
" Foobar",
"Foobar ",
"Foo1Bar",
"\u0641\u0648\u0628\u0627\u0631"
],
sOutput = "<table border='1'><thead><tr><th><\/th>",
i,
j;
for (i=0; i<aRegExps.length; i++) {
sOutput += "<th>" + aRegExps[i].source + "<\/th>";
}
sOutput += "<\/tr><\/thead><tbody>";
for (j=0; j<aStrings.length; j++) {
sOutput += "<tr><td>"" + aStrings[j] + ""<\/td>";
for (i=0; i<aRegExps.length; i++) {
sOutput += "<td>" + aRegExps[i].test(aStrings[j]) + "<\/td>";
}
sOutput += "<\/tr>";
}
sOutput +=" <\/tbody><\/table>";
document.write(sOutput);
</script>
</body>
ciao, dhgm | 
July 23rd, 2005, 08:07 PM
| | | | re: Regular expression , for only one word
Joe Abou Jaoude wrote:[color=blue]
> hi,
> I need to verify that the user enter only one word in a textbox.
> So i thought to add a regularexpression validator and disallow the[/color]
user[color=blue]
> to enter a space between the letters he wrote.
> how can i do that ?
>
> thx
>
>
> *** Sent via Developersdex http://www.developersdex.com ***[/color]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
input {
font: 16px tahoma;
}
</style>
</head>
<body>
<form>
<input
type="text"
name="t1" value=""
onkeydown="this.prev_value=this.value"
onkeyup="var
v=this.value;if(v!=this.prev_value)this.value=v.re place(/\s+/,'')" />
one word only !
</form>
</body>
</html> | 
July 23rd, 2005, 08:07 PM
| | | | re: Regular expression , for only one word
Joe Abou Jaoude wrote:[color=blue]
> hi,
> I need to verify that the user enter only one word in a textbox.
> So i thought to add a regularexpression validator and disallow the[/color]
user[color=blue]
> to enter a space between the letters he wrote.
> how can i do that ?
>
> thx
>
>
> *** Sent via Developersdex http://www.developersdex.com ***[/color]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
input {
font: 16px tahoma;
}
</style>
</head>
<body>
<form>
<input
type="text"
name="t1" value=""
onkeydown="this.prev_value=this.value"
onkeyup="var
v=this.value;if(v!=this.prev_value)this.value=v.re place(/\s+/,'')" />
one word only !
</form>
</body>
</html> | 
July 23rd, 2005, 08:08 PM
| | | | re: Regular expression , for only one word
This is pretty basic, but you get the idea. It would be better to
actually call this from onSubmit:
<html>
<head>
<script>
function disallowspace(val){
if(/\s/.test(val)){
alert("Too many words.");
}
}
</script>
<body>
<input type="text" value="" onblur="disallowspace(this.value)" />
</body>
</html> | 
July 23rd, 2005, 08:08 PM
| | | | re: Regular expression , for only one word
Try this:
<html>
<head>
<script>
function disallowspace(){
if(/\s/.test(document.getElementById('xyz').value)){
alert("Too many words.");
return false;
}
return true;
}
</script>
<body>
<form onSubmit="return disallowspace();" id="someform"
action="some.cgi" method="get">
<input type="text" value="" id="xyz" />
<input type="submit" value="submit" />
</form>
</body>
</html> | 
July 23rd, 2005, 08:08 PM
| | | | re: Regular expression , for only one word
Slight upgrade...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
input {
font: 12px tahoma;
border: 1px dashed #c88;
padding: 4px;
}
</style>
<script type="text/javascript">
function xwhite(obj)
{
var v;
if (/ /.test(v = obj.value))
obj.value = v.replace(/ +/g,'');
}
</script>
</head>
<body onload="document.forms[0].elements[0].focus()">
<form>
<input type="text" name="t1" value=""
onkeyup="xwhite(this)" onblur="xwhite(this)" />
&rarr; [one word only]
</form>
</body>
</html>
*** Sent via Developersdex http://www.developersdex.com *** |  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 225,720 network members.
|