JavaScript - Wildcard
How would i use a wildcard in String.match()?
For example, I would like to see if a variable contains www.*.com, where the * can be replaced with anything. How could i go about doing that? Similar TutorialsHi ya all, is it possible for Javascript to recognise 100 different labeled divs as one unit, so that I can unhiliten them onmouseout(on mouse over they are hilited). I realise that * is an operator and it can't be used as a wildcard, so is there some kind of substitue that can be used. I am trying to do something like this: Code: function goaway(id, status) { document.getElementById(id).style.visibility = status; goaway.onmouseout( fo-test * , 'hidden'); } the divs Id's are fo-test 1 thru to fo-test 100 most appriciate any help Hello, A quick summary to inform you on what I'm trying to accomplish and then the question. If you want to skip to the question first, I have it in red letters lower down. Just figured I'd answer the "why are you doing it this way" question first. I am writing a tool in JavaScript in which a user selects various options via checkboxes and then a pre-engineered scenario image for a product matching those selections is displayed. Here is the basic workflow of the code: 1. The code runs through the checkboxes and based on whether the boxes are checked or not, adds a value of "1" or "0" to a string. There are some dashes added into the string to visually divide some categories of options. Here is an example of the resulting string: 0-0011100-101100 2. A variable named scenarioID holds the value of the resulting string. A switch statement is run which assigns a name to the scenario based on the scenario ID. Here is an example: PHP Code: switch(scenarioID){ case "0-0011100-101100": var scenarioName="Scenario 1"; break; } 3. The scenarioName variable is then used to pull up an image with the corresponding name. For example, if the scenarioName variable has a value of "Scenario 1" then an image named "Scenario 1" is displayed. --------------------------------------------- So here is where I am running into an issue: I have some scenario names that multiple scenario ID's match because they apply whether a specific checkbox is selected or not. Currently, I am still able to apply the correct name to the scenario by simply having multiple switch statements apply to the same scenario name. For example: PHP Code: switch(scenarioID){ case "0-0011100-101100": var scenarioName="Scenario 1"; break; case "0-1110011-101101": case "1-1110011-101101": var scenarioName="Scenario 2"; break; } However, I have some scenarios in which up to 3 options may apply whether or not they are checked. This means that I have to have 8 different switch cases (scenario ID's) for a single scenario name. Is there a way for me to wildcard the switch cases so that I can specify which items don't matter for a scenario? Something like the following example? PHP Code: switch(scenarioID){ case "0-0011100-101100": var scenarioName="Scenario 1"; break; case "*-1110011-101101": var scenarioName="Scenario 2"; break; } Hey, I'm working on an auto-suggest for our search function, but I am running into a wall (possibly due to lack of sleep). Basically, the user enters a search term, which searches our mySQL db, and if the search matches with a part number or description, it will output those results. My jam is that I would like the output to highlight the matching input, which I've gotten to work 95% correct. Code: for (var i=0;i<arr.length;i++) // Loop through results to indicate highlighting { // Test condition to see if input matches part number if (this.sInp.toLowerCase()==arr[i].value.toLowerCase()) // Tests to see if input matches part number and highlights input to match { var val = arr[i].value; var st = val.toLowerCase().indexOf( this.sInp.toLowerCase()); var output = val.substring(0,st) + "<em>" + val.substring(st, st+this.sInp.length) + "</em>" + val.substring(st+this.sInp.length); var span = _b.DOM.cE("span", {}, output, true); if (arr[i].value != "") { var br = _b.DOM.cE("br", {}); // Inserts line break span.appendChild(br); var small = _b.DOM.cE("small", {}, arr[i].info); // Produces second line (info or value) span.appendChild(small); } var a = _b.DOM.cE("a", { href:"#" }); var tl = _b.DOM.cE("span", {className:"tl"}, " "); var tr = _b.DOM.cE("span", {className:"tr"}, " "); a.appendChild(tl); a.appendChild(tr); a.appendChild(span); a.name = i+1; // Modified to submit on click a.onclick = function () { pointer.setHighlightedValue(); var formName = (pointer.oP.whereSubmit); if (formName != null) { var form = document.getElementById(formName); form.submit(); } return false; }; // End submit modification a.onmouseover = function () { pointer.setHighlight(this.name); }; var li = _b.DOM.cE( "li", {}, a ); ul.appendChild( li ); } else // Tests if input matches any part of description and highlights input to match { var val = arr[i].info; var st = val.toLowerCase().indexOf( this.sInp.toLowerCase() ); var output = val.substring(0,st) + "<em>" + val.substring(st, st+this.sInp.length) + "</em>" + val.substring(st+this.sInp.length); var span = _b.DOM.cE("span", {}, output, true); if (arr[i].info != "") { var br = _b.DOM.cE("br", {}); span.appendChild(br); var small = _b.DOM.cE("small", {}, arr[i].value); span.appendChild(small); } var a = _b.DOM.cE("a", { href:"#" }); var tl = _b.DOM.cE("span", {className:"tl"}, " "); var tr = _b.DOM.cE("span", {className:"tr"}, " "); a.appendChild(tl); a.appendChild(tr); a.appendChild(span); a.name = i+1; // Modified to submit on click a.onclick = function () { pointer.setHighlightedValue(); var formName = (pointer.oP.whereSubmit); if (formName != null) { var form = document.getElementById(formName); form.submit(); } return false; }; // End submit modification a.onmouseover = function () { pointer.setHighlight(this.name); }; var li = _b.DOM.cE( "li", {}, a ); ul.appendChild( li ); } } // End Input Highlight My issue seems to be my conditional statement. Basically, the user's input must match the part number ("value") exactly for it to output the results is a specific format. I would like it to be able to have something similar to mySQL's wildcard ("%") it will search the entire part number ("value") and not just the beginning to find a match. Sorry if this doesn't make much sense, I will attempt to clarify if needed, but again running on 0 sleep. Thanks for any help. Ok, this is going to be a bit of an off the wall question and I'm not sure if it can even be done, but what I'm trying to do is prefill a form in an external iframe. The text fields in form that is in the external iframe all have a name of "U2FsdGV + a random generated string". There are 5 text fields all following the same pattern, I would like for it to post the value 1 in the first wildcard case it detects, then value 2 in the 2nd, etc... Here is my code so far: PHP Code: <script> function load() { var btn = document.getElementById('btnTest'); btn.onclick = function(){ var ifrm = document.getElementById('myiframe'); ifrm.contentWindow.document.forms['postingForm'].U2FsdGV*.value = 'Hello world!'; }; } window.onload = load; </script> |