WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
266866
Dash character in character range breaks <input> pattern regex
https://bugs.webkit.org/show_bug.cgi?id=266866
Summary
Dash character in character range breaks <input> pattern regex
Ian Timothy
Reported
2023-12-24 09:48:30 PST
OVERVIEW When the regex of a <input> pattern contains a character range with a actual dash character (not a range operator), the validation for the form element is always true. Dash characters recognized as range operators are not an issue (like: [0-9]), only dash characters recognized as an actual character in a set (like: [0-9-]). This is a regression because it works as expected on older versions. Is similar to, if not same as:
https://github.com/GoogleChrome/chromium-dashboard/issues/3106
STEPS TO REPRODUCE i = document.createElement('input'); i.value = 'asdf'; i.pattern = '^[0-9-]{4}$'; v1 = i.checkValidity(); // returns true instead of false i.pattern = '^[0-9]{4}$'; v2 = i.checkValidity(); // returns false as expected console.log(v1, v2); ACTUAL RESULTS Safari 17: true - false Safari 15: false - false EXPECTED RESULTS false - false
Attachments
Add attachment
proposed patch, testcase, etc.
Karl Dubost
Comment 1
2023-12-24 19:57:24 PST
I wonder if it could be because of this change by Anne
https://searchfox.org/wubkat/diff/092303e2abb1e89254f64b301953ac0fbf36c681/Source/WebCore/html/BaseTextInputType.cpp#43
Radar WebKit Bug Importer
Comment 2
2023-12-24 19:57:34 PST
<
rdar://problem/120106089
>
Anne van Kesteren
Comment 3
2023-12-25 07:27:52 PST
Hey Ian, thank you for reporting this. This is an intentional change in behavior: see
bug 251675
. You can fix this by escaping - as \\-, although if you set it from script you might need even more backslashes. I suspect \\\\-. As such closing this as INVALID.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug