...

View Full Version : Regular Expression questions



Darksbane
07-30-2002, 12:25 PM
Here is what I am trying to do:

I have an array of sentences. and I would like the user to be able to enter in a word which is then inserted into a regular expression to find all sentences with that word in it.

Here is an example
SentenceArray= new Array (
"I have a dog",
"dogs are good",
"cats are bad.")


The user then enters in the word "dog"

the regular expression should then look like this I think:
regexp = /dog/
and then an if is set up like

for (...) {
if (regexp.test(SentenceArray[X]){
do something
}
}

I am not exactly sure what I am doing wrong, but I have figured out that it doesn't like "regexp.test(SentenceArray[X])" and only seems to take some kind of form element. I tried a hidden field instead and that got it to stop giving an error, but I still never get any results.

Any help or suggestionw would be appreciated.

mordred
07-30-2002, 01:07 PM
If you want to construct a Regular Expression from user input, then you'll have to use the new RegExp() constructor function to ensure runtime compilation of the newly created RegExp. See also the detailed information at
http://devedge.netscape.com/docs/manuals/js/core/jsguide15/regexp.html#1008311

A quick example for your code could look like



<html>
<head>
<title>RegExp</title>
<script>
SentenceArray= new Array (
"I have a dog",
"dogs are good",
"cats are bad.")

function matchIt(word) {
var regex = new RegExp(word, "i");

for (var i = 0; i < SentenceArray.length; i++) {
if (regex.test(SentenceArray[i])) {
alert("'" + word + "' was found in '" + SentenceArray[i] + "'");
}
}

}
</script>
</head>
<body>

<form onsubmit="matchIt(this.what.value); return false;">
what to match?
<input type="text" name="what"></input><br>
<input type="submit"></input>
</form>

</body>
</html>


I hope that helps you for adjusting your code to the desired functionality. Note that I used the "i" flag to make a case-insensitive pattern matching.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum