-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex by removing delimiters or using a new option: html_pattern. #4520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…n Assert\Regex to remove delimiters.
…getNonDelimitedPattern
|
||
public function getHtmlPattern() { | ||
// If html_pattern is specified, use it | ||
if (!is_null($this->html_pattern)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
null !== $this->htmlPattern
Please follow Symfony CS. |
Sorry about this, I’m quite new to contributing to Symfony. Fix coming up |
@@ -113,4 +113,64 @@ public function testConstraintGetDefaultOption() | |||
|
|||
$this->assertEquals('pattern', $constraint->getDefaultOption()); | |||
} | |||
|
|||
public function testNonDelimitedPattern() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the curly brace should be on its own line for all methods
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is actually fixed in PR #4522, my bad for creating multiple PR, I just found out how to add commits to existing PR.
Commits ------- 6f9eda9 [Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex to remove delimiters. Discussion ---------- [Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex by removing delimiters or using a new option: htmlPattern. Hopefully, this time is the good one… * Fixes: [#3766, #4077, #4513, #4520, #4521] * Bug fix: yes * Feature addition: yes * BC break: no * Symfony2 tests pass: yes In Issue #3766, it was asked that Assert\Regex generates HTML5 pattern attribute. It was done in PR #4077, but the generated Regex is in delimited format which is not supported by HTML5. Hence, `/[a-z]+/` would be converted to `[a-z]+`. If flags are specified like in `/[a-z]+/i`, it cannot be converted and pattern validation will be disabled client-side. If is however now possible, using a new option, `htmlPattern`, to specify the pattern you want to be used. Example: ```php <?php /** * @Assert\Regex(pattern="/^[0-9]+[a-z]*$/i", htmlPattern="^[0-9]+[a-zA-Z]*$") */ private $civic_number; ``` **Note**: [Documentation](http://symfony.com/doc/current/reference/constraints/Regex.html) should be updated accordingly. --------------------------------------------------------------------------- by lavoiesl at 2012-06-08T15:45:17Z God, I just found out you can "add more commits to this pull request by pushing to the master branch on lavoiesl/symfony"… --------------------------------------------------------------------------- by travisbot at 2012-06-08T15:50:31Z This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1568634) (merged 2d767b41 into b84b46b). --------------------------------------------------------------------------- by petajaros at 2012-07-04T14:23:16Z Anything new about this issue? --------------------------------------------------------------------------- by lavoiesl at 2012-07-04T16:25:43Z Alright, tests are passing using `phpunit -c phpunit.xml.dist --filter 'RegexValidatorTest'`. @travisbot reports errors because he can’t even start the tests due to dependencies, which is not related --------------------------------------------------------------------------- by vicb at 2012-07-04T16:31:13Z It should be ready to merge when you have taken the last comments into account. thanks. --------------------------------------------------------------------------- by lavoiesl at 2012-07-04T16:39:05Z So it seems this PR will finally pass, thanks a lot. --------------------------------------------------------------------------- by vicb at 2012-07-04T17:03:35Z Thank you for this PR and the changes. --------------------------------------------------------------------------- by fabpot at 2012-07-04T17:10:20Z @lavoiesl Can you squash your commits before I merge? Thanks. --------------------------------------------------------------------------- by lavoiesl at 2012-07-04T17:25:18Z There. I also left trace of some commits I did. Thanks
In Issue #3766, it was asked that Assert\Regex generates HTML5 pattern attribute.
It was done in PR #4077, but the generated Regex is in delimited format which is not supported by HTML5.
Hence,
/[a-z]+/
would be converted to[a-z]+
.If flags are specified like in
/[a-z]+/i
, it cannot be converted and pattern validation will be disabled client-side. If is however now possible, using a new option,html_pattern
, to specify the pattern you want to be used.Example:
Note: Documentation should be updated accordingly.