Test Strings Against A Regular Expression - Getting "No Match"
Jul 6, 2009
I am trying to test some strings against a regular expression, but have tried at least 10 different online testers with no success at all. Plus I've tried some code to do it myself, again with no success. I know for a fact that some of the strings should match and some shouldn't match, but I am getting "No match" returns from all the strings.
Does somebody have some page code that has the regular expression in some javascript code in the head section of a document, then a form in the body that I can enter the text string, click a button, and I get an alert saying if the string matches or not?
Normally I can write regular expressions decently well but for some reason I am having trouble getting this to work. I am validating form data and need to throw an error if there are ANY spaces in the field. abc123 is fine, abc 123 is not. Any character is fine, just not a space.
I just want my regular expression to match a backslash. Thats all. Tried giving [\]. Aint working. Tried[x5c] not working. But this hexadecimal character match is working for all the other characters.
var str = "/dev/filler/test0/"; var patt = new RegExp("/test0/$"); var result = patt.exec(str); document.write(result); which returns: /test0/
in the var patt line I would like to replace the hardcoded test0 string with an expression that matches any characters between the two forward slashes. I have tried with little success.
It's purpose is to check for valid date and allows formats mm/dd/yyyy, m/dd/yyyy, mm/d/yyyy or m/d/yyyy.
When I try it with the code below it always returns null.
Code:
function isValidDate(/* String */ p1_date) { var x = "^(((0?[1-9]|1[012])/(0?[1-9]|1d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]d)d{2}|0?2/29/((19|[2-9]d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$";
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!
I'm trying to perform a very simple validation of user input. I want to verify that the user entered a six-digit string consisting entirely of numbers. So anything from 000000 to 999999 is considered valid. The problem that I'm having is getting the validation to work on the entire string. In other words, 000000 is okay but 000000000000 is also returning as a match. Here's a quick code block...I have something along these lines....
That is failing when I enter 123456 into the textbox. Why, though? I know I can replace...
if (sNumberValue.match(/A[0-9]{6}z/))
....with something like...
if (sNumberValue.length == 6 && sNumberValue.match(/[0-9]{6}/))
....or I could assign a maxlength to the input box, of course. The thing is, I really want to know WHY the regular expression isn't responding as I'd expect. Is there a syntax error somewhere in the code?
is there a way to select elements that match a regular expression? I have a set of divs with id = "wrap_n" where n is a progressive and I need to select them and for each 1 I have to add a function that togggle the "elem_n" div.
for the character classes [ ], if i want to match ,.[] i cannot put them into the square brackets so how to deal with that? what if the characters are . or ! or ." (<-- combined) it fails if the regexp is [.!(.")] which will treat ( as one of the element. also the book javascript: the definitive guide says that (?=p) requires that the following characters match the pattern p, but do not include those characters in the match. However, the browser failed to figure this out (IE8) i.e. "asd:ert".match(/(?=:)w/) returns null
I need to match two strings that have the same content, but out of order.
For example "hi, my name is will"
and "will hi, name is my"
So, in this case how do i check to see that everything in the top matches everything in the bottom?
Lets take this a step further. I ran into the problem that if the strings have quotes " they mess up. So i couldn't match id="yay" even though it was part of the string.
I tried to escape it , but for some reason it was escaped as %3D%quot%22% and the other similar string with quotes esacped as %3B%.
I have a regular expression called mCheck and a variable called usrVal which contains Ƈ/20/41/11/22' I then use the usrVal.match(mCheck) so the code looks like the following
Now, I was under the impression that if there wasn't a match then the match method would return boolean 'False'. However it is returning 'null' instead... I have used this exact same check on other pages before and it returned false just fine....
It has to be flexible in that the extension can be either 4, 5, or 6 chars (.php, .html, .shtml for example) and needs to cater for and whether querystring parameters exist too.
--------------------------- Windows Internet Explorer --------------------------- <EMBED src=http://www.youtube.com/v/JTmM3jut05Q&hl=en&fs=1& width=500 height=200 type=application/x-shockwave-flash allowfullscreen="true" allowscriptaccess="always"></EMBED>
how can i get "src" value in above code using regular expression?
does anyone know how I can build a regular expression e.g. for the string.search() function on runtime, depending on the content of variables? Should be something like this:
var strkey = "something"; var str = "Somethin like this";