Home > Backend Development > PHP Tutorial > Why Doesn't My PHP Regex Match Unicode Letters?

Why Doesn't My PHP Regex Match Unicode Letters?

DDD
Release: 2024-12-18 16:43:11
Original
786 people have browsed it

Why Doesn't My PHP Regex Match Unicode Letters?

Unicode Letter Character Matching in PCRE/PHP: Revised Understanding

In an attempt to develop a flexible name validator, a PHP pattern has been developed to match Unicode letter characters, apostrophes, hyphens, and spaces:

$namePattern = "/^([\p{L}'\- ])+$/";
Copy after login

However, this pattern has encountered issues when encountering non-ASCII characters such as Ă or 张. To rectify this, the following insights must be considered:

1. Unicode Modifier: The primary issue is the absence of the u modifier, which is essential for activating Unicode support in PCRE/PHP. Without this modifier, the Unicode character properties become unavailable.

2. Corrected Pattern: The corrected pattern, including the u modifier, is as follows:

$namePattern = '/^[-\' \p{L}]+$/u';
Copy after login

By incorporating these modifications, the pattern can now effectively match Unicode letter characters, ensuring compatibility with a wider range of inputs.

The above is the detailed content of Why Doesn't My PHP Regex Match Unicode Letters?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template