2014-03-25 20 views
0

不工作這正則表達式:正則表達式,在JS工作在PHP

/^admin$|^[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}$/ 

應符合這個字符串:

Пупкин Василий Иванович 

它確實匹配的JS(在Firebug控制檯進行測試),並不會在PHP,我不明白爲什麼。

+0

您是否逃過反斜槓? – Biffen

+0

嗯,它似乎工作。見[this](http://regex101.com/r/mT0wD0) – Kamehameha

+0

@Biffen,現在我試着用反斜槓逃脫,結果相同。 – paperstreet7

回答

3

在JavaScript中,字符串總是UTF-8。然而,在PHP中,它們是一系列字節。爲了允許PHP的正則表達式引擎處理UTF-8字符串,請將u修飾符添加到正則表達式中。

您還可以通過刪除所有大寫字母範圍並使用i修飾符來簡化您的正則表達式,但這可能與語言環境有關,因此請務必對其進行測試!

有關修飾符的更多信息,請檢查docs

+0

通俗地說:在PHP中添加一個「u」到你的正則表達式的末尾。爲unicode *和*不區分大小寫添加'ui'。 – h2ooooooo

+0

是的,這是工作。謝謝! – paperstreet7