Coding patterns for regular expressions is completely unintuitive, as far as I can see. I have been trying to write script that produces an array of attribute components within an HTML element.
Consider the example of the HTML element TABLE with the following attributes producing sufficient complexity within the element:
Note that the HTML was created as a string in code, and thus there are NO newlines (' ') in the string, as if a file was parsed...so newlines are not an issue. The only whitespace is the space character ' ' itself, required to delimit the element components.
I want to write an RE containing paranthesized substring matching that neatly orders attribute components. The resulting array, after the execution of the string .match() method upon the example, should look as follows:
I can then march down the array (in steps of 2) setting attributes (name=value) to the element using standard DOM interface methods, right?
In approaching the writing of the RE, I have to take into account the characters permitted to form the attribute name and the attribute value.
I assume a start to the RE pattern as:
<attribute name>=<attribute value>
I then try to find the right RE pattern for <attribute name>, keeping in mind what the legal characters are for attribute names according to the HTML standard ("recommendation"):
[A-Za-z0-9-]+
I believe this patterns conforms to the standard for attribute values:
[,;'":!%A-Za-z0-9s.-]+
That pattern tries to be more exclusive than inclusive, although I think just about every character on the planet, including a newline, is acceptable in an attribute value, at least the kind one might see in an HTML document. Code:
I am trying to use regular expressions within JavaScript for the picture upload component of a shopping cart. I still can't seem to get my mind around them.
I have a page with a working file upload. When you click on browse and then select your file, the file name is also returned to the second field, the picture name field. The problem is that the entire string is returned - 'G:CatalogMyPicturessomepic.jpg' instead of 'somepic.jpg'.
I know this can be pulled out with regular expressions, everything from the right until it hits a / or I included the script and a couple of links. Code:
know there is a similar post on here but it didn't really give me any actual help on this topic:It seems that I have the correct regular expressions in this however it doesn't want to follow my freaking instructions can you guys maybe show me where I'm going wrong and give me a short source code on how to rectify it. Code is below:
function validate(theForm) { var falseCounter = 0;
I'm trying to validate the form, but each time I try to do so, all fields return invalid. I've tested my regular expressions with various online testers and they seem to work fine, am I perhaps using it in the wrong way? Or maybe a problem with my functions?
i'm trying to use a regular expression to verify an order. I basically don't want any decimals or negative numbers allowed. I believe I have any digit 0-9 one or more times and negating decimals. but for some reason it allows decimals and letters. also is it correct to put return true or can i just leave it blank?
var varifyThree = /^\d*[^\.]$/; var productThree = document.getElementById('prod3').value; if (productThree==null || productThree=="" || varifyThree.test(productThree)) { return true;
I keep getting an error that says item is null. I'm a little lost because once I got my regExp to start working this actually worked for a little bit. When I came back I was getting an error.
var creditExp = /^([345])(\d{3})\-?(\d{4})\-?(\d{4})\-?(\d{4})$/; var creditNumber = document.getElementById("creditnum").value; var item = creditExp.exec(creditNumber); document.getElementById("creditnum").value = item[1] + item[2] + "-" + item[3] + "-" + item[4] + "-" + item[5]; if (item[1] == 4 && document.getElementById("card1").checked == true) { return true; }else if (item[1] == 5 && document.getElementById("card2").checked == true) { return true; }else if (item[1] == 3 && document.getElementById("card3").checked == true) { return true; } else { alert("You must enter a valid credit card number."); document.getElementById("creditnum").focus(); return false; } var billingName = document.getElementById('creditname').value; if (billingName == null || billingName == "") { alert("You must enter your first name as printed on your credit card!"); document.getElementById('creditname').focus(); return false; }
Code JavaScript: function regExpression(stringValue) { if (stringValue === null || stringValue.length === 0) { alert("No string was entered"); } else if (stringValue.match(/^[_.-a-z0-9]+@[_.-a-z]+.[a-z]{2,4}$/i) != null) alert("This is a valid email."); else { alert("The string is not a valid email."); } }
The problem is that: Code: john.smith@gmail123.com works. The 123 in the provider shouldn't be allowed, but it is. I'm trying to build a regular expressions for email.
Here's what used up the last couple of hours of my time.
The Mac version of MSIE will not load a script that has this in it:
theItem.elm.value = theItem.elm.value.replace(/^s*(.*?)s*$/, "$1"); Now I had other regular expressions in the script done this way, but in this one case I had to use the object constructor method.
It will won't work in this browser, but now at least the script loads and other functions in the same file work.
I have a solution so basically I'm looking for some insight into this if anyone has it. What is it about this particular expression that upsets Mac MSIE?
I am trying to validate a date by using regular expressions.I have parts working, such as only accepts numbers, but I cannot get the range correct. On the "mm" field, I am getting errors.
if(form.mm.value=="") { alert("Please insert your birth month"); return false;}
I have a string content which include the content "[some number]". I wanted to replace the inner number which is inside the square bracket with jQuery regular expressions. the number inside the brackets are always variables.
provide regular expressions for Phone and Postal Code for the specified formats only? My phone # format is 416-642-3481(3digits-3digits-4digits). Please make sure I need a regular expression to satisfy only this format 416-111-1111. I don’t need any brackets, spaces, and country code. My Postal Code format is M4A-2S3 or m4a-2s3. Please make sure I need a regular expression to satisfy only these 2 formats M4A-2S3 or m4a-2s3. I don’t need any brackets, spaces, and country code.
I'm trying to make a script which will check if the string which the user sent from a form contains ONLY letters. The problem is if the user entered something like this "25 years old" it allow that to be submitted. It only blocks submissions of the form if the user submits NO letters like this "12345". I want it to block submissions if at least one character isn't a letter. Here's my code:
var message = document.myform.formtest.value; var allowed = /[A-z+]/; if(!allowed.test(message)) { alert("The field only allows letters (a-z)."); return false; }
I want to create a function with Javascript regular expressions that will grab the entire contents of a custom tag and place that into a string. Including the tag that I am grabbing.
This is what I think the regular expression should look like:
<myTag[^>]*>(.*?)</myTag>
Whats the best way to use Javascript to place the results of my Regular Expression shown above into a string.
For example:
if myString = "bla bla bla <myTag>some more text</myTag>" then I need a command that will use the regular expression to put "<myTag>some more text</myTag>" into another string var.
I think I need to use the RegExp command in Javascript but I am unsure.
I'm kind of confused about how to use regular expressions. I'm trying to have the user input a string or something and i have to validate it. The example im suppose to do has numbers only and must have 9 digits.
var toSearch = "I Wish This Worked. What Is The Issue?"; var pattern = /is/gi; result = pattern.exec(toSearch); alert(result.length); Shouldn't this be 4, not 1? /*while((result = pattern.exec(toSearch)) != null) alert(result[0] );*/ The commented out code works to access all instances of 'is'. But what's the point of returning an array if you're only going to use one index(0)? You'd have to manually code to get a full array of the returns, doesn't that defeat the purpose?
HTML Code: some text [URL].. continue of the text How can I add some content before and after the matching statement. I meant for example how can I change the above text into: HTML Code: some text <a href="http://www.example.com">http://www.example.com</a> continue of the text
So if the user on my website types 52 it would return the following value: 5<sup>2</sup>, or just, 5 how do I detect something like this. if they enter: 5 how can I detect the number "2" and put it superscripted past the number 5. so the javascript reads this: 5 and returns this: 5<sup>2</sup>
Can a regex be used that will satisify the one int/one letter rule that will work in IE5 or if not, can the above function be refactored w/o having to interate through the string array each time? Neither method works in Opera 6. Also, is there any condition except for validating perhaps a password where such a rule would be needed?