1
我已經寫了下面的代碼來檢查給定的字符串是拉丁語還是包含一些其他非拉丁字符如波斯語。問題是,它總是爲以下兩個字符串返回true:我需要一個正則表達式來匹配拉丁字符,而不是其他字符
$str = "Hello, What's up?"
或者
$str = "Hello, سلام"
雖然第二個字符串,因爲它包含波斯字符(非拉丁)也應該返回false 。如果字符串包含零個或多個您指定的字符
$default_rule = "/[a-zA-Z0-9\(\)\*_\-\!\#\$\%\^\&\*\,\.\"\'\]\[]*/";
$rule = ($rule==null) ? $default_rule : $rule;
if(preg_match($rule, $str)==true)
{
// always returns true
}
非常感謝。我做了半拉子匹配:D ....你的回答讓很多事情清楚 –
太糟糕了,他不想要所有基本的ASCII字符......看着桌子,我看到我們可以用一個整齊的'^ [ - 〜] + $':) +1 – zx81