Connecting Tech Pros Worldwide Help | Site Map

Regular expression , for only one word

 
LinkBack Thread Tools Search this Thread
  #1  
Old July 23rd, 2005, 07:07 PM
Joe Abou Jaoude
Guest
 
Posts: n/a
Default Regular expression , for only one word



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, 07:07 PM
Dietmar Meier
Guest
 
Posts: n/a
Default 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, 07:07 PM
RobB
Guest
 
Posts: n/a
Default 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, 07:07 PM
RobB
Guest
 
Posts: n/a
Default 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, 07:08 PM
otto
Guest
 
Posts: n/a
Default 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, 07:08 PM
otto
Guest
 
Posts: n/a
Default 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, 07:08 PM
Rob B
Guest
 
Posts: n/a
Default 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 ***
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

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 220,989 network members.