View Full Version : Does this field contain any of these words?

06-15-2003, 02:03 PM

Can anyone help please .... It's really simple I think. At the moment I have a if statement as follows:

if (head == omit[0]) {

blah blah


It looks to see if head is equal to the first element of the omit array and if it is does something .....

But what I really want it to do is ....... if head (which is an ordinary sentence) contains any of the single words contained in the array called omit, then carry out the blah blah bit. Omit is an array of single words.

It should compare head to each of the elements of omit, and do blah blah, if any of the words in omit appear in head.

Can anyone suggest some code?

Many thanks


Philip M
06-15-2003, 06:44 PM
Suggest you have a look at


which seems to do what you require.

06-15-2003, 08:03 PM
This will work

var searchWords = ['just','some','words'];
var sentence = "This is just a sentence";

String.prototoype.hasAnyWord = function( words )
var regex = new RegExp( "(" + words.join("|") + ")" );
return Boolean( regex.test( this ) );

if ( sentence.hasAnyWord( searchWords ) )
// blah blah

06-15-2003, 08:46 PM
Thanks guys .... but the smutengine doesn't quite do what's needed.

The second code doesn't seem to run on my page and produces an error:

'return' statement outside of function

Any ideas as to why? (It is exactly what's required if only it would work!)



06-15-2003, 08:55 PM
Hi snow,

for(i=0; i<omit.length; i++)
if(head.indexOf(omit[i]) != -1) { alert(omit[i] + ' found in head') }

( ) ( )

06-15-2003, 09:46 PM
I modified my post to fix the error - sorry

06-16-2003, 02:46 PM
Hi Thanks for this .... It's working great with the variable list of words to exclude, but how do I get it to work with the array I have read in via:

var externalscript="http://www.outuk.com/style/omit.js"

The omit.js file looks like this:

omit = new Array('red', 'blue', 'green');

How do I switch the:

var searchWords = ['just','some','words'];
to be instead the red, blue and green (plus any other elements which might be added)

Thanks for all your help!


06-16-2003, 03:16 PM
They are both arrays, I just defined one using the literal syntax. I could have just as easily used

var searchWords = new Array('just','some','words');

and probably should have, to avoid confusing you -- sorry.


06-16-2003, 03:33 PM
Hi beetle ....

Thanks again for all the help .... I am really new to this, and almost getting it, but often get a little stuck.

I don't really want to define the contents of the searchWords array from within the code on that page but read it in from an outside file ..... the omit.js file. This is mainly because it will need to change quite often and I wouldn't want to have to re-write the page each time.

So how do I change:

var searchWords = new Array('just','some','words');

so that instead of being made up of a new array it uses the existing array contained in omit.js which looks like this:

omit = new Array('red', 'blue', 'green');

Really do appreciate your help.


06-16-2003, 05:28 PM
You don't have to change anything except to send the appropriate array to the hasAnyWord() method

if ( head.hasAnyWord( omit ) )
// blah