adyen-magento2 icon indicating copy to clipboard operation
adyen-magento2 copied to clipboard

[PW-6651] RegExp: Named capture groups not supported on older devices

Open infodeleted opened this issue 2 years ago • 2 comments

https://github.com/Adyen/adyen-magento2/blob/d0683413eebcbcbc6984959cdf6da3f60ece1c4b/view/frontend/web/js/view/payment/method-renderer/adyen-hpp-method.js#L597

broken compatibility with older devices. https://caniuse.com/mdn-javascript_builtins_regexp_named_capture_groups

image

infodeleted avatar May 09 '22 08:05 infodeleted

Hi @eliseyvrublevskiy,

Thank you for opening this issue. Currently, we offer support for the latest browsers. However, we do aspire to also support some older browsers and will be looking into this.

Cheers, Titus

tnaber avatar May 11 '22 13:05 tnaber

` ... function getStreetAndHouseNumberWithRegex(addressString) {

                let houseNumber = 'N/A';
                let streetName = addressString;

                try {
                    // Match addresses where the street name comes first, e.g. John-Paul's Ave. 1 B
                    let streetFirstRegex = /([a-zA-Z0-9.'\- ]+)\s+(\d{1,10}((\s)?\w{1,3})?)$/;

                    let streetFirstAddress = addressString.match(streetFirstRegex);

                    if (streetFirstAddress) {
                        streetName = streetFirstAddress[1];
                        houseNumber = streetFirstAddress[2];
                    } else {
                        // Match addresses where the house number comes first, e.g. 10 D John-Paul's Ave.
                        let numberFirstRegex = /^(\d{1,10}((\s)?\w{1,3})?)\s+([a-zA-Z0-9.'\- ]+)/;

                        let numberFirstAddress = addressString.match(numberFirstRegex);

                        if (numberFirstAddress) {
                            streetName = streetFirstAddress[2];
                            houseNumber = streetFirstAddress[1];
                        }
                    }
                } catch (e) {
                    //nothing
                }

                return {
                    streetName: streetName,
                    houseNumber: houseNumber
                };
            }

...

`

infodeleted avatar May 11 '22 16:05 infodeleted

Hi @eliseyvrublevskiy,

Unfortunately it seems that most of the browsers that do not support this regex functionality have been deprecated (shown below). Hence, this change is not something that we will be looking into.

If however this is important to you, feel free to open a pull request which we will then review.

IE11: 2022-06-15
Edge 18: 2020-05-27
Firefox 78: 2020-06-30
Chrome 63: 2018-01-24

Thanks, Jean Adyen

Morerice avatar Aug 29 '22 11:08 Morerice