Php preg_match不允许希腊字符
请参阅下面我的注册表:Php preg_match不允许希腊字符,php,regex,preg-match,Php,Regex,Preg Match,请参阅下面我的注册表: $teststring="αβγδεζηθΙκΛμ"; if(!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring)) { echo "invalid char"; } else { echo "success"; } 谢谢记住使用分号: <?php $teststring="αβγδεζηθΙκΛμ"; if (!preg_match("/^[A-ZA-zΑ-Ωα-ω
$teststring="αβγδεζηθΙκΛμ";
if(!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring))
{
echo "invalid char";
}
else
{
echo "success";
}
谢谢记住使用分号:
<?php
$teststring="αβγδεζηθΙκΛμ";
if (!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring)) {
echo "invalid char"; # Semicolon was missing from here
}
else {
echo "success"; # Semicolon was missing from here
}
记住使用分号:
<?php
$teststring="αβγδεζηθΙκΛμ";
if (!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring)) {
echo "invalid char"; # Semicolon was missing from here
}
else {
echo "success"; # Semicolon was missing from here
}
记住使用分号:
<?php
$teststring="αβγδεζηθΙκΛμ";
if (!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring)) {
echo "invalid char"; # Semicolon was missing from here
}
else {
echo "success"; # Semicolon was missing from here
}
记住使用分号:
<?php
$teststring="αβγδεζηθΙκΛμ";
if (!preg_match("/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ0-9\- ]+$/", $teststring)) {
echo "invalid char"; # Semicolon was missing from here
}
else {
echo "success"; # Semicolon was missing from here
}
您有几个重叠的字符范围,看起来您正在尝试测试整个字符串,以确保它不仅与这些字符匹配?那样的话,你会得到很多错误的否定。如果您在成功的preg_match
上返回“success”,这可能会起作用,但这仍然是一种非常落后的方法
此外,如果要匹配unicode字符,则需要使用/u
修饰符,以便将字符串视为UTF-16
。如果您愿意,您也可以使用一个替代广泛范围的替代品;您仍然需要/u
工作表达式,如果字符串的所有字符仅在该范围内,则允许该字符串有效:
<?php
$teststring="ΑαβγδεζηθΙκΛμ";
if(preg_match("/^[A-Za-z0-9α-ωΑ-Ω ίϊΐόάέύϋΰήώ-]+$/u", $teststring))
// ^ note the unescaped hyphen is an
// actual hyphen not a char range
{
echo "success";
}
else
{
echo "invalid char";
}
?>
您有几个重叠的字符范围,看起来您正在尝试测试整个字符串,以确保它不只是与这些字符匹配?那样的话,你会得到很多错误的否定。如果您在成功的preg_match
上返回“success”,这可能会起作用,但这仍然是一种非常落后的方法
此外,如果要匹配unicode字符,则需要使用/u
修饰符,以便将字符串视为UTF-16
。如果您愿意,您也可以使用一个替代广泛范围的替代品;您仍然需要/u
工作表达式,如果字符串的所有字符仅在该范围内,则允许该字符串有效:
<?php
$teststring="ΑαβγδεζηθΙκΛμ";
if(preg_match("/^[A-Za-z0-9α-ωΑ-Ω ίϊΐόάέύϋΰήώ-]+$/u", $teststring))
// ^ note the unescaped hyphen is an
// actual hyphen not a char range
{
echo "success";
}
else
{
echo "invalid char";
}
?>
您有几个重叠的字符范围,看起来您正在尝试测试整个字符串,以确保它不只是与这些字符匹配?那样的话,你会得到很多错误的否定。如果您在成功的preg_match
上返回“success”,这可能会起作用,但这仍然是一种非常落后的方法
此外,如果要匹配unicode字符,则需要使用/u
修饰符,以便将字符串视为UTF-16
。如果您愿意,您也可以使用一个替代广泛范围的替代品;您仍然需要/u
工作表达式,如果字符串的所有字符仅在该范围内,则允许该字符串有效:
<?php
$teststring="ΑαβγδεζηθΙκΛμ";
if(preg_match("/^[A-Za-z0-9α-ωΑ-Ω ίϊΐόάέύϋΰήώ-]+$/u", $teststring))
// ^ note the unescaped hyphen is an
// actual hyphen not a char range
{
echo "success";
}
else
{
echo "invalid char";
}
?>
您有几个重叠的字符范围,看起来您正在尝试测试整个字符串,以确保它不只是与这些字符匹配?那样的话,你会得到很多错误的否定。如果您在成功的preg_match
上返回“success”,这可能会起作用,但这仍然是一种非常落后的方法
此外,如果要匹配unicode字符,则需要使用/u
修饰符,以便将字符串视为UTF-16
。如果您愿意,您也可以使用一个替代广泛范围的替代品;您仍然需要/u
工作表达式,如果字符串的所有字符仅在该范围内,则允许该字符串有效:
<?php
$teststring="ΑαβγδεζηθΙκΛμ";
if(preg_match("/^[A-Za-z0-9α-ωΑ-Ω ίϊΐόάέύϋΰήώ-]+$/u", $teststring))
// ^ note the unescaped hyphen is an
// actual hyphen not a char range
{
echo "success";
}
else
{
echo "invalid char";
}
?>
请发布您的真实代码可能希望使用以避免编码问题。请发布您的真实代码可能希望使用以避免编码问题。请发布您的真实代码可能希望使用以避免编码问题。请发布您的真实代码可能希望使用以避免编码问题。感谢我提供的输入,然而奇怪的是,如果你尝试使用它与某些字符串它失败,不知道为什么。。。例如:它看起来像是按预期的那样工作,因为成功的条件是当它不匹配时:if(!
谢谢,它可以与我提供的输入一起工作,但奇怪的是,如果您尝试将它与特定字符串一起使用,它会失败,并且不确定原因……例如:它看起来像是按预期工作的,因为成功条件是当它不匹配时:如果(!
谢谢,它可以与我提供的输入一起工作,但奇怪的是,如果您尝试将它与特定字符串一起使用,它会失败,并且不确定原因……例如:它看起来像是按预期工作的,因为成功条件是当它不匹配时:如果(!
谢谢它与我提供的输入一起工作,但奇怪的是,如果您尝试将它与特定字符串一起使用,它会失败,并且不确定原因……例如:它看起来像是按预期工作的,因为成功条件是当它不匹配时:如果(!