JavaScript - Js Literal Expression Help. Newbie
I need to find a way to check if a field contains sql commands. To begin with, lets just say as an example:select, delete, drop, truncate
<script type="text/javascript"> function validate () { var literals= /select/; user_input = document.forms[0].input1.value.search(literals); if (user_input == -1) { alert("test123"); } } </script> <body> <form > <input type="text" size="25" name="input1" value=" "> <input type="button" onClick="validate()" value="check" /> </form> I am new to JS and regular experssions. How do I make it in my regular expression so not only am I searching for /select/ but also for the other sql commands (or anythign for that matter)... essentially multiple literals... eg if it contains /select OR delete OR truncate/ etc. sorry if this is confusing. let me know if i can help in any other way. thanks guys! Similar Tutorialsok so Code: <p> Howdy <p> expressed as a literal string that is passed to the setTimeout() function might look like this: Code: setTimeout("document.getElementById('first').innerHTML = '<p>' + 'HOWDY' + '<\/p>';", 2000); ..so I guess you can't just put quotes around an expression like this: "'<p> HOWDY <\/p>;" So tags have to be isolated, but it get confusing with expressions like this, which I am not sure how to express as a string: Code: <p><h2 class="pos_left"> <img src="car1.jpg" name="slide" width="400" height="250" /> </h2> </p> ^ I wish I could change the " in there to ' and then just wrap the whole thing in double " This is what I came up with but it did not work: Code: setTimeout("document.getElementById('first').innerHTML = '<p>' + '<h2' + 'class='pos_left'' + '>' + '<img' + 'src='car1.jpg'' + 'name='slide'' + 'width='400'' + 'height='250'' + '/>' + '</h2>' + '<\/p>';", 4000); Dear all, I have only a very basic knowledge of Javascript, and even less than that with regards to Regular Expressions. I've written a simple script in JS designed to "highlight" a navigation bar item when you're on the page it is linking to. For example, if you click on "contact us" from the navigation bar, then once the contact page opens, the "contact us" link on the navigation bar will be highlighted. My approach is very basic: Code: var url = window.location.href; if (url.match("contactus.htm")) { ... highlight code... } This works fine, with one exception: the "default.asp" page! If the URL in the address bar is: "http://www.mysite.com/default.asp", then the above method will work just fine. However, when someone enters my site directly, the URL in the address bar is "http://www.mysite.com/", with the "default.asp" not being present. Now on first thought the solution to this would be to simply modify the script like this: Code: var url = window.location.href; if (url.match("default.asp") || url.match("http://www.mysite.com/")) { ... highlight code... } But that won't work since the "http://www.mysite.com/" part is in common to all sub pages on my site. Also the default.asp page sometimes takes in query string variables e.g. "http://www.mysite.com/?ref=alex" or "http://www.mysite.com/default.asp?ref=alex". Now obviously the solution is to use regular expressions in order to define the specific conditions for the script: 1. If the url is "http://www.mysite.com/" without anything after the last "/" then highlight the "home page" item in the navigation bar. 2. If the url is "http://www.mysite.com/?[...]" then also highlight the "home page" item in the navigation bar. 3. Same goes for "http://www.mysite.com/default.asp?[...]". 4. Additionally, taking into account that the URL can also begin with "https://secure." instead of "http://www.", with rules 1-3 applying to it as well. Unfortunately since I'm a total newbie when it comes to regular expressions, I have no idea where to start with this! I've tried reading some tutorials on Regular Expressions but other than the basic examples I didn't really understand how to do what I want to do. For any of you Javascript experts on here this would be extremely easy, and I would REALLY REALLY appreciate your help!! Thank you for your time!! nanquan I keep getting this error and I'm not sure why var flashvars = {'regkey':"<?php $_GET[regkey]?>",'pkey':"<?php $_GET[pkey]?>"}; unterminated string literal [IMG]chrome://firebug/content/blank.gif[/IMG]var flashvars = {'regkey':"<br />\n I have the following code which attaches a function to events in x number of comboboxes (x will probably always = 4, but I do not want to hard-code this). I wish to pass the value of i to the function being attached as well as the value of tempData. In other words, I want the parameters in function to be the value, not a reference variable. In the current example, I am using the hard-coded variable ci. This I want to be replaced by a literal created when the event handler is attached (the value of the loop variable i). Also, notice that I get the filter value in the event handler (assigned to the variable ct). I would like to replace this code with the value of tempData which would also be determined when the evenet is attached (it is the same value in this case, but it keeps the onChange event from having to do this each time it runs). Code: var props = { col_0: "select", col_1: "select", col_2: "select", col_3: "select", btn_reset:true, display_all_text: "-Show All-", on_filters_loaded: function(o){ //reset all filters var slcIndexes = o.GetFiltersByType(o.fltTypeSlc, true); //o.fltTypeSlc = 'select' for(var i=0; i<slcIndexes.length; i++){ //this public method returns a filter DOM element by column index var slcElm = o.GetFilterElement(slcIndexes[i]); //tempData = slcElm.options[slcElm.selectedIndex].text; //window.alert(tempData + " " + slcElm); tf_AddEvent(slcElm, 'change', onchangeFn=function(){ //ci is the column index for the column to filter on. ct is the new text from the combobox to filter on var ci; ci = 2; var ct = tf_outputTable.GetFilterValue(ci); tf_outputTable.ClearFilters(); //window.alert("ci= " + ci + " ct= " + ct); tf_outputTable.SetFilterValue(ci, ct); tf_outputTable.Filter(); }); //end tf_AddEvent } } } setFilterGrid("outputTable",props); Hi guys , i am getting this error " unterminated string literal" but iam unable to locate the problem..iam using fire bug for firefox.. any idea from where this error comes ? thanks Hello, I created a simple WYSIWYG for creating CSS based webpages. It works exactly as assumed in Safari and Chrome. However, in firefox, when you copy/paste more than one line of text, instead of formatting it as html, in puts in line breaks causing the array storing all of the data to break into multiple lines and causing an unterminated string literal. Can anyone, 1. suggest why it is behaving this way? 2. suggest a work around to allow it to work on FF? Hello, I have the following code: A = { "value" : "a", }; B = A ; B.value = "b"; alert (A.value); // => b I expected A.value to be "a". Can someone explain what I'm thinking wrong? And: how can I change values of a new object, without changing the parent-object ? tnx So I can't figure out why I keep getting the error.... Code: unterminated string literal document.write("<input type=\"button\ value=\"" + phrases [i][j] + "\" Code: <form name="pirateForm"> <div align="center"> <script type="text/javascript"> phrases = [["Greetings","hello","pardon me","excuse me","hows it going"], ["People","sir","madam","woman","children"], ["Questions","where is","can you help me find","is that","how far is it to?"], ["Ariticles","the","my","your","there"], ["Adjectives","outstanding","attractive","happy","dead"], ["places","restroom","restaurant","hotel","pub"], ["Desires","I would like to","I desire","I wish I knew how to","my mother told me to"], ["Actions","have a great dinner","have a cocktail","fall on the ground","get drunk"]]; for(var i = 0; i < phrases.length; i++) { var category = phrases[i][0]; document.write("<tr valign='top'><td>" + category + ": <td>"); for(var j = 1; j < phrases [i].length; j+=2) { document.write("<input type=\"button\ value=\"" + phrases [i][j] + "\" onClick='document.pirateForm.Output.value += \"" + phrases [i][j+1] + "\";'>\n"); } } </script> </div> <div align="center"> <textarea id="task_list" rows="5" cols="130"></textarea> <input type="button" value="Clear" onClick="this.form.reset()" /> </div> </div> </form> im sure its the scripting, im new to js, can anyone Tell me why im getting these 2 error messages? thank you!!!!!!! detailed error: unterminated string literal Error: onPageUnload is not defined function writeMovie1() {detectBrowser();if(windowsInternetExplorer) {document.write('<object id="id3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="150" height="16" style="height: 0px; left: 160px; position: absolute; top: 150px; width: 150px; z-index: 1; "><param name="src" value="musicfiles/VenusStereo.m4a" /><param name="controller" value="false" /><param name="autoplay" value="true" /><param name="scale" value="tofit" /><param name="volume" value="100" /><param name="loop" value="true" /></object>');} else if(isiPhone) {document.write('<object id="id3" type="video/quicktime" width="150" height="16" style="height: 0px; left: 160px; position: absolute; top: 150px; width: 150px; z-index: 1; "><param name="src" value="musicfiles/VenusStereo.m4a"/><param name="controller" value="false"/><param name="scale" value="tofit"/></object>');} else {document.write('<object id="id3" type="video/quicktime" width="150" height="16" data="musicfiles/VenusStereo.m4a" style="height: 0px; left: 160px; position: absolute; top: 150px; width: 150px; z-index: 1; "><param name="src" value="musicfiles/VenusStereo.m4a"/><param name="controller" value="false"/><param name="autoplay" value="true"/><param name="scale" value="tofit"/><param name="volume" value="100"/><param name="loop" value="true"/></object>');} setTransparentGifURL('Media/transparent.gif');function applyEffects() {var registry=IWCreateEffectRegistry();registry.registerEffects({stroke_0:new IWStrokeParts([{rect:new IWRect(-5,5,10,467),url:'Welcome_files/stroke.png'},{rect:new IWRect(-5,-5,10,10),url:'Welcome_files/stroke_1.png'},{rect:new IWRect(5,-5,705,10),url:'Welcome_files/stroke_2.png'},{rect:new IWRect(710,-5,11,10),url:'Welcome_files/stroke_3.png'},{rect:new IWRect(710,5,11,467),url:'Welcome_files/stroke_4.png'},{rect:new IWRect(710,472,11,10),url:'Welcome_files/stroke_5.png'},{rect:new IWRect(5,472,705,10),url:'Welcome_files/stroke_6.png'},{rect:new IWRect(-5,472,10,10),url:'Welcome_files/stroke_7.png'}],new IWSize(716,477))});registry.applyEffects();} function hostedOnDM() {return true;} function onPageLoad() {loadMozillaCSS('Welcome_files/WelcomeMoz.css') adjustLineHeightIfTooBig('id1');adjustFontSizeIfTooBig('id1');adjustLineHeightIfTooBig('id2');adjust FontSizeIfTooBig('id2');Widget.onload();fixupAllIEPNGBGs();fixAllIEPNGs('Media/transparent.gif');applyEffects()} function onPageUnload() {Widget.onunload();} Hi.. I am facing identifier starts immediately after numeric literal error in firefox onclick="document.location.href='<%= themeDisplay.getPathMain() %>/portal/ext/asite/assignOrg'"/> can any 1 solve this?? I am trying to change the background color of TD's that only the exact text PTO and really do not grasp regex's string/element examples: Code: <td class="ms-cal-todayitem"> Ward, Daniel M. - PTO - home - im awesome. </td> <td class="ms-cal-todayitem">Ward, Daniel M. - UPTO - home - im awesome. </td> I tried this: Code: $("td.ms-cal-todayitem").filter(function() { return /PTO/.test( $(this).text() ); }).css("background-color","#C4DBFF") but it also changes the background of items like my second element example. - Yes it should be case sensitive, if possible. can anyone explain me in detail what this regular expression mean... each and every part of this sentence: var baseRegex = new RegExp("^(?=.{6,})(?=.*^[A-Za-z]([a-zA-Z0-9_-]+)$)(?=.*[A-Z])"); Hi, Can someone fix the following regular expression? It is validating every thing expect YEAR. It only matches first 2 digits for year instead of 4. I want it to be 4 digits for a year. It returns true if I put 12/25/19.I want it to return false for the above date. Code: var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/; Thanks Hi: I think this is where I need to ask this. I am doing a PHP/mod_rewrite and I need to tweak one of the RegEx's used in it but I don't know the syntax. I have this bit of code: Code: <a href="http://www.mywebsite.com/Promotional.Products-Promotional.Items/Promotional-Products/<?php echo $product_id ?>-<?php echo str_replace(" ", "-", $myTitle) ?>-<?php echo $full_state ?>-Promotional-Products.html" title="<?php echo $myTitle?> <?php echo "$full_state"; ?>"><?php echo $myTitle?></a> RewriteRule ^Promotional.Products-Promotional.Items/Promotional-Products/([0-9]+)-([a-zA-Z]+)-([a-zA-Z]+)-Promotional-Products.html$ Promotional.Products-Promotional.Items/Promotional-Products.php?product_id=$1&myTitle=$2&full_state=$3 I wanted to know how I can revise the middle RegEx: Code: ...-([a-zA-Z]+)-... to include replacing all spaces with hyphens. Can someone help me with this, please. Thanks! Hello, How can i validate string with alphanumeric, space, dash and dot in regular expression ? I want to find in all occurrences of #(...) in a string (what is between the parentheses is unknown. At the moment I have Code: str.match(/#\(.*\)/) The problem is, I want to be able to have multiple of these in one string, like "#(hello) good #(world)", but RegExp takes me from the first '#', to the last ')'. I want to allow nested parentheses, so I am thinking that there should be away to not let it look past the second '#'. How would I do this? Hi all, I have this line (part of a larger function that converts a few common BBCodes into HTML) and I don't know how to do one thing. First, here's the line: Code: str.replace(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<span style="color:$1;">$2</span>'); It works fine if I do this (I'll mis-spell "color" to prevent messing up the board): THIS works fine..... [colur=#ff0000]Red Text[/colur] But of course, if I do this: [colur="#ff0000"]Red Text[/colur] It doesn't work. What I need to do is take the $1 variable, AFTER it's captured, but BEFORE it's used, and strip out any quote marks I find. I may want to also strip out, then add the hash sign (#) also, then put it back so it works with or without the #. While I'm at it, I'll also probably detect color as a hex string vs. a keyword (so that both "#ff0000" and "red" work) and probably also support the rgb() method. But first I need to know how to access and modify $1 BEFORE it's used. I'm hoping that I don't need to use two lines (or two separate .replace() calls). Thanks! -- Roger I have the following regular expression to test the validity of an input date: Code: ([0-9][0-9]|[0-9])[\s/-]([0-9][0-9]|[0-9])[\s/-]([0-9][0-9][0-9][0-9]|[0-9][0-9]) It should allow 1 or two digits for the day of the month, then a separating character (" ", "/" or "-"), then 1 or two digits for the month, then 2 or 4 digits for the year. Unfortunately it will accept anything above 2 digits for the year, which I understand why is happening but don't know how to fix! Can anyone help? Thanks! I want to validate a form with only numbers and "$" sign. so far i know this Code: currencyValue = which.value; var re = /^[0-9]*$/; if (!re.test(currencyValue)) { alert("Value must be all numberic charcters, non numeric's removed from field!"); field.value = field.value.replace(/D/g,""); } but how do I also add the "$" sign as ok? |