Skip to content Skip to sidebar Skip to footer

Difference Between Php Regex And Javascript Regex

Hi i want to use below php regex in spry java script framework but them doesn't work with spry framework and spry doesn't let the user to input!. 1)'/^[\d]+$/' 2)'/^([\x{600}-\x{6F

Solution 1:

1) /^[\d]+$/2) /^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/3) /^([\u0600-\u06FF]+\d*\s)*[\u0600-\u06FF]+\d*$/

/u is not supported, since Javascript regexes only supports unicode in terms of codepoints. \x{???} (unicode codepoints) should be written \u???? in Javascript regex (always 4 digits 0 padded)

In these cases, the following applies to the rest of the regex:

  • \s in Javascript is treated as unicode
  • \d isn't, which means only ASCII digits (0-9) are accepted.

This means we specifically have to allow "foreign" numerals, e.g. Persian (codepoints 06F0-06F9):

1) /^[\d\u06F0-\u06F9]+$/2) /^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/3) /^([\u0600-\u06FF]+[\d\u06F0-\u06F9]*\s)*[\u0600-\u06FF]+[\d\u06F0-\u06F9]*$/

(Remove \d if ASCII digits shouldn't be accepted)

Not sure what the brackets are supposed to be doing in example 1, originally they could be written:

1) /^\d+$/

But to add the Persian numerals, we need them, see above.

Update

Spry character masking, however, only wants a regex to be applied on each entered character - i.e., we can't actually do pattern matching, it's just a "list" of accepted characters in all places, in which case:

1      ) /[\u06F0-\u06F9\d]/      // match 0-9 and Persian numerals2and3) /[\u0600-\u06FF\d\s]/    // match all Persian characters (includes numerals), 0-9 and space

Once again, remove \d if you don't want to accept 0-9.

Update 2

Now... using regex for validation with Spry:

var checkFullName = function(value, options)
{
   // Match with the by now well-known regex:if (value.match(/^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/))
   {
      returntrue;
   }
   returnfalse;
}

var sprytextfield =
     newSpry.Widget.ValidationTextField(
          "sprytextfield", 
          "custom", 
          { validation: checkFullName, validateOn: ["blur", "change"] }
     );

A similar custom function can be made for case 3.

See examples from Adobe labs

Solution 2:

Are you passing them in as strings or as regex objects? Try removing the " characters from around the regex.

The 'u' flag is a little more tricky. You may need to explain what the 2nd and 3rd regexes are trying to do.

Post a Comment for "Difference Between Php Regex And Javascript Regex"