Javascript 在JS中工作的正则表达式在PHP中不工作

Javascript 在JS中工作的正则表达式在PHP中不工作,javascript,php,regex,Javascript,Php,Regex,此regexp: /^admin$|^[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}$/ 应匹配此字符串: Пупкин Василий Иванович 它在JS中确实匹配(在Firebug控制台中测试),但在PHP中不匹配,我不明白为什么。在JavaScript中,字符串总是UTF-8。然而,在PHP中,它们是一个字节序列。为了允许PHP的正则表达式引擎处理UTF-8字符串,向正则表达式添加u修饰符 您还可以通过删除所有大写字母范围并使用i修

此regexp:

/^admin$|^[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}\s[А-Яа-я]{2,20}$/
应匹配此字符串:

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

它在JS中确实匹配(在Firebug控制台中测试),但在PHP中不匹配,我不明白为什么。

在JavaScript中,字符串总是UTF-8。然而,在PHP中,它们是一个字节序列。为了允许PHP的正则表达式引擎处理UTF-8字符串,向正则表达式添加
u
修饰符

您还可以通过删除所有大写字母范围并使用
i
修饰符来简化正则表达式,但是这可能取决于语言环境,因此一定要测试它


有关修改器的更多信息,请查看

在JavaScript中,字符串总是UTF-8。然而,在PHP中,它们是一个字节序列。为了允许PHP的正则表达式引擎处理UTF-8字符串,向正则表达式添加
u
修饰符

您还可以通过删除所有大写字母范围并使用
i
修饰符来简化正则表达式,但是这可能取决于语言环境,因此一定要测试它


有关修改器的更多信息,请查看

在JavaScript中,字符串总是UTF-8。然而,在PHP中,它们是一个字节序列。为了允许PHP的正则表达式引擎处理UTF-8字符串,向正则表达式添加
u
修饰符

您还可以通过删除所有大写字母范围并使用
i
修饰符来简化正则表达式,但是这可能取决于语言环境,因此一定要测试它


有关修改器的更多信息,请查看

在JavaScript中,字符串总是UTF-8。然而,在PHP中,它们是一个字节序列。为了允许PHP的正则表达式引擎处理UTF-8字符串,向正则表达式添加
u
修饰符

您还可以通过删除所有大写字母范围并使用
i
修饰符来简化正则表达式,但是这可能取决于语言环境,因此一定要测试它

有关修改器的更多信息,请查看

您可能需要使用:

\p{Cyrillic}
阅读了解更多信息。

您可能需要使用:

\p{Cyrillic}
阅读了解更多信息。

您可能需要使用:

\p{Cyrillic}
阅读了解更多信息。

您可能需要使用:

\p{Cyrillic}

阅读了解更多信息。

您是否避开了反斜杠?嗯,似乎确实有效。看@Biffen,现在我试着用反斜杠逃脱,同样的结果。你逃过反斜杠了吗?嗯,它看起来确实有效。看@Biffen,现在我试着用反斜杠逃脱,同样的结果。你逃过反斜杠了吗?嗯,它看起来确实有效。看@Biffen,现在我试着用反斜杠逃脱,同样的结果。你逃过反斜杠了吗?嗯,它看起来确实有效。请参见@Biffen,现在我尝试使用反斜杠转义,结果相同。用外行的话说:在PHP中的正则表达式末尾添加一个
u
。为unicode和不区分大小写添加一个
ui
。用外行的话说:在PHP中的正则表达式末尾添加一个
u
。为unicode和不区分大小写添加一个
ui
。用外行的话说:在PHP中的正则表达式末尾添加一个
u
。为unicode和不区分大小写添加一个
ui
。用外行的话说:在PHP中的正则表达式末尾添加一个
u
。为unicode和大小写不敏感添加
ui