| re: Regex match of string in array index?
Timmy wrote:[color=blue]
> 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[/color]
Do you mean: ...popup.html?photo02.jpg
[color=blue]
>
> I then extract the search string like this:
>
> display = window.location.search;
> photo = display.substring (display.lastIndexOf('?') +1);[/color]
Your posted line will give:
photo = image02.jpg
[color=blue]
>
> 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?
>[/color]
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 |