Connecting Tech Pros Worldwide Help | Site Map

Regular expression , for only one word

  #1  
Old July 23rd, 2005, 08:07 PM
Joe Abou Jaoude
Guest
 
Posts: n/a


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 ***
  #2  
Old July 23rd, 2005, 08:07 PM
Dietmar Meier
Guest
 
Posts: n/a

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>&quot;" + aStrings[j] + "&quot;<\/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
  #3  
Old July 23rd, 2005, 08:07 PM
RobB
Guest
 
Posts: n/a

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>

  #4  
Old July 23rd, 2005, 08:07 PM
RobB
Guest
 
Posts: n/a

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>

  #5  
Old July 23rd, 2005, 08:08 PM
otto
Guest
 
Posts: n/a

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>

  #6  
Old July 23rd, 2005, 08:08 PM
otto
Guest
 
Posts: n/a

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>

  #7  
Old July 23rd, 2005, 08:08 PM
Rob B
Guest
 
Posts: n/a

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)" />
&amp;rarr; [one word only]
</form>
</body>
</html>


*** Sent via Developersdex http://www.developersdex.com ***
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Regular Expression for currency hellbent4u@gmail.com answers 7 April 3rd, 2007 01:55 PM
Regular Expression help Zach answers 3 May 28th, 2006 05:35 PM
Regular Expression, to use or not to use... Tom answers 3 November 22nd, 2005 01:37 PM
Regular Expression, to use or not to use... Tom answers 3 July 21st, 2005 05:30 PM