...

View Full Version : Iterate thru the characters in a RegExp() Object?



RadarBob
07-08-2002, 04:31 PM
Is it possible to iterate through the list of characters in a regular expression? A RegExp object looks suspiciously like a string. I wonder if it has similar properties.

I'm using a regular expression to check for invalid characters in user text input. If I hit an invalid character I want to list all the invalid characters for the user via "alert()". Rather than keep a separate string object in sync with the RegExp object (as my list of invalid characters grows over time), I want to simply display all the values defined in the regular expression.

I realize it may not be practical if I use "shorthand" such as [a..z]. Given the limited number of invalid characters, I intend to explictly list them all; such as
var InvalidChars = new RegExp ("\"|\\'");

TIA

adios
07-09-2002, 02:51 AM
Listing the particular offending characters might be more useful than a laundry list (of all of them). Also: if you're not compiling the RegExp at runtime, it's a lot neater to use a literal - escaping metacharacters can get very messy when strings are involved.



<html>
<head>
<title>untitled</title>
<script type="text/javascript" language="JavaScript">

function filter_badchars(field, ObjRegExp) {
var chr, c = 0, msg = '', pointer = '----------------> ';
while (chr = field.value.charAt(c++))
if (ObjRegExp.test(chr)) msg += pointer + chr + '\n';
if (msg) {
msg = 'The following characters are disallowed:\n\n' + msg;
msg += '\n___________________ Please correct.';
alert(msg);
field.focus();
field.select();
return false;
}
return true;
}

//////////////////////////////////////////////////////
var InvalidChars = /\$|\/|\?|~|%|&|\.|\||\\/;
//////////////////////////////////////////////////////

</script>
</head>
<body>
<h4>InvalidChars are: [$] [/] [?] [~] [%] [&] [.] [|] [\]</h4>
<form>
<input name="testfield" type="text">
<input type="button" value="Test" onclick="filter_badchars(testfield, InvalidChars)">
</body>
</html>



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum