Closed
Bug 1227906
Opened 9 years ago
Closed 9 years ago
HTML `pattern` attribute should set `u` flag for regular expressions
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
mozilla46
Tracking | Status | |
---|---|---|
firefox46 | --- | fixed |
People
(Reporter: mathias, Assigned: arai)
References
()
Details
(Keywords: dev-doc-complete, site-compat)
Attachments
(1 file)
4.81 KB,
patch
|
jst
:
review+
|
Details | Diff | Splinter Review |
As soon as support for the `u` flag is completed, it should be enabled for the HTML `pattern` attribute as well.
Spec: https://html.spec.whatwg.org/multipage/forms.html#the-pattern-attribute
“If an input element has a pattern attribute specified, and the attribute's value, when compiled as a JavaScript regular expression with only the "u" flag specified, compiles successfully, then the resulting regular expression is the element's compiled pattern regular expression. If the element has no such attribute, or if the value doesn't compile successfully, then the element has no compiled pattern regular expression.”
Reporter | ||
Updated•9 years ago
|
Assignee | ||
Comment 1•9 years ago
|
||
bug 1135377 should be sufficient for implementing this :)
Then, I have one concern.
RegExp pattern with unicode flag disallows extended patterns (see bug 1135377 comment #53 for example), and I wonder if it results in some webcompat issue.
for example, <input pattern="\A[A-Z]{3}"> will accept "ABCD" and rejects "BCDE", but when unicode flag is set, pattern compilation will fail because of \A and pattern check won't work, and accepts all input.
might it be better showing some warning when the pattern compilation fails due to unicode flag?
Assignee | ||
Comment 2•9 years ago
|
||
about the extended patterns, following test doesn't work as expected because of escaped single-quote, that is not SyntaxCharacter and it's an invalid pattern.
https://dxr.mozilla.org/mozilla-central/rev/388bdc46ba51ee31da8b8abe977e0ca38d117434/dom/html/test/forms/test_pattern_attribute.html#174
> // The same way, we want to escape the ' in the pattern.
> element.pattern = "foo\\'bar";
> element.value = "foo'bar";
> checkValidPattern(element);
>
> // Check for 'i' flag disabled. Should be case sensitive.
> element.value = "Foo";
> checkInvalidPattern(element);
checkValidPattern there is passed, because no pattern match is performed, but next checkInvalidPattern fails with same reason.
(btw, I think that test is wrong. pattern should be "foo" for "Foo")
Similar case might exist on web.
Assignee | ||
Comment 3•9 years ago
|
||
in case disallowing extended pattern doesn't matter (not sure if this is already discussed), here's a patch.
if it matters, please reject this and let's think how we could avoid/reduce web compat issue :)
Almost green on try run: https://treeherder.mozilla.org/#/jobs?repo=try&revision=15f613007121
Assignee: nobody → arai.unmht
Attachment #8700667 -
Flags: review?(jst)
Comment 4•9 years ago
|
||
Could you please file a spec bug about the possible backwards compatibility issue.
Assignee | ||
Comment 5•9 years ago
|
||
Thanks :)
reported here: https://github.com/whatwg/html/issues/439
Assignee | ||
Comment 6•9 years ago
|
||
I just noticed that SyntaxError is reported to Browser Console.
it should be better to report it to Web Console (maybe in separated bug)
Updated•9 years ago
|
Attachment #8700667 -
Flags: review?(jst) → review+
Assignee | ||
Comment 7•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/3a3edb6725a69dd0a4620b28408ae6717e8e724a
Bug 1227906 - Use unicode flag in pattern attribute. r=jst
Comment 8•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox46:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
Comment 9•9 years ago
|
||
A Stack Overflow user has suffered from this change: http://stackoverflow.com/q/36953775/5693076
Posted the site compatibility doc: https://www.fxsitecompat.com/en-CA/docs/2016/input-pattern-now-sets-u-flag-for-regular-expressions/
MDN docs may require a double check.
Keywords: dev-doc-needed,
site-compat
Comment 10•9 years ago
|
||
Another case posted on Firefox Input: https://input.mozilla.org/dashboard/response/5898357
Assignee | ||
Comment 11•9 years ago
|
||
maybe we should describe more about the change in the warning message, with a link to MDN document?
Comment 12•9 years ago
|
||
I've made a small addition in:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-pattern
and in:
https://developer.mozilla.org/en-US/Firefox/Releases/49#HTML
Keywords: dev-doc-needed → dev-doc-complete
Updated•6 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•