Skip to content

Craft CMS 2 phone field (PHP 7.3 regex compatibility issue) #115

@jamesmacwhite

Description

@jamesmacwhite

Description

I'm aware the Craft 2 version is unlikely to be updated, but a warning for anyone else who may come across this. Since PHP 7.3 preg_quote() will quote the # character which breaks the phone field validation in Sprout Fields, because it adds a backslash before each # and turns the regex into this:

/^\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})\([0-9]{1})$/

You will get the following error:

preg_match(): Compilation failed: unmatched closing parenthesis at offset 11

This is because the regex has been manipulated in a way which is not expected, because the # character did not behave like this previously.

https://www.php.net/manual/en/function.preg-quote.php

Below PHP 7.3 you won't see the problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions