From 6cecc7d8bdbfd35a9c6d72a4954d4ea364ae3058 Mon Sep 17 00:00:00 2001 From: Eric Kwoka <43540491+ekwoka@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:18:57 +0400 Subject: [PATCH] :white_check_mark: Allows underscore in event names (#3756) --- packages/alpinejs/src/directives.js | 2 +- tests/cypress/integration/directives/x-on.spec.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/alpinejs/src/directives.js b/packages/alpinejs/src/directives.js index ee1bf4ebe..691721236 100644 --- a/packages/alpinejs/src/directives.js +++ b/packages/alpinejs/src/directives.js @@ -182,7 +182,7 @@ let alpineAttributeRegex = () => (new RegExp(`^${prefixAsString}([^:^.]+)\\b`)) function toParsedDirectives(transformedAttributeMap, originalAttributeOverride) { return ({ name, value }) => { let typeMatch = name.match(alpineAttributeRegex()) - let valueMatch = name.match(/:([a-zA-Z0-9\-:]+)/) + let valueMatch = name.match(/:([a-zA-Z0-9\-_:]+)/) let modifiers = name.match(/\.[^.\]]+(?=[^\]]*$)/g) || [] let original = originalAttributeOverride || transformedAttributeMap[name] || name diff --git a/tests/cypress/integration/directives/x-on.spec.js b/tests/cypress/integration/directives/x-on.spec.js index f896d4c99..aac85a25e 100644 --- a/tests/cypress/integration/directives/x-on.spec.js +++ b/tests/cypress/integration/directives/x-on.spec.js @@ -585,6 +585,20 @@ test('.dot modifier correctly binds event listener', get('span').should(haveText('baz')) } ) +test('underscores are allowed in event names', + html` +
+ + + +
+ `, + ({ get }) => { + get('span').should(haveText('bar')) + get('button').click() + get('span').should(haveText('baz')) + } +) test('.dot modifier correctly binds event listener with namespace', html`