469,939 Members | 2,326 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,939 developers. It's quick & easy.

Regex match of string in array index?

I'm working on a simple click-through image gallery and I have images with
captions in two arrays like this:

var current_value="0";

var images = new Array
("photo01.jpg",
"photo02.jpg",
"photo02.jpg");

var captions = new Array
("caption1",
"caption2",
"caption3");

The large image views are shown in a window which I can link to with a
search substring URL defining which image to display: popup.html?image02.jpg

I then extract the search string like this:

display = window.location.search;
photo = display.substring (display.lastIndexOf('?') +1);

By knowing the search substring value (in this case photo02.jpg) I would
like a regex function to search through the images array and find the match
(in this case index 1) and therafter use that index value to set the
current_value variable.

Does anyone have an idea how the searching and matching is done?

Oct 31 '05 #1
3 2931
Timmy wrote:
I'm working on a simple click-through image gallery and I have images with
captions in two arrays like this:

var current_value="0";

var images = new Array
("photo01.jpg",
"photo02.jpg",
"photo02.jpg");

var captions = new Array
("caption1",
"caption2",
"caption3");

The large image views are shown in a window which I can link to with a
search substring URL defining which image to display: popup.html?image02.jpg
Do you mean: ...popup.html?photo02.jpg

I then extract the search string like this:

display = window.location.search;
photo = display.substring (display.lastIndexOf('?') +1);
Your posted line will give:

photo = image02.jpg

By knowing the search substring value (in this case photo02.jpg) I would
like a regex function to search through the images array and find the match
(in this case index 1) and therafter use that index value to set the
current_value variable.

Does anyone have an idea how the searching and matching is done?


There are a couple of options, one is to loop through the array looking
for a matching image name:

var current_value = 0;
for (var i=0, n=images.length; i<n && 0 == current_value; ++i){
if (images[i] == photo) current_value = i;
}

If you are only using 'current_value' to get the caption, why not store
the image name and caption in an object:

var photoCaption = {
"photo01.jpg" : "caption 1 text",
"photo02.jpg" : "caption 2 text",
"photo03.jpg" : "caption 3 text"
};
...

Having extracted the photo name from the search string:

var caption = photoCaption[photo];

--
Rob
Oct 31 '05 #2
RobG wrote:
[...]

var current_value = 0;
for (var i=0, n=images.length; i<n && 0 == current_value; ++i){


Actually that isn't great because if you get a match at i=0 it will
still loop through all the images. Here's a slightly better version:

var i=0;
while ( images[i] != photo && images[++i] ) {
current_value = i;
}
if ( !images[i] ) {
// didn't find a match, deal with it
}

[...]
--
Rob
Oct 31 '05 #3
> Do you mean: ...popup.html?photo02.jpg

Yes thanks for figuring that and for the various solutions. I'll test.

Nov 4 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by Tap | last post: by
2 posts views Thread by Steve | last post: by
17 posts views Thread by clintonG | last post: by
5 posts views Thread by JackRazz | last post: by
8 posts views Thread by Just Me | last post: by
7 posts views Thread by lgbjr | last post: by
5 posts views Thread by Kofi | last post: by
8 posts views Thread by Trev | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.