我需要幫助與preg匹配/替換forma我真的不能理解它的工作方式以及每個元素在做什麼。Preg match和Preg替換特定格式
到目前爲止,我有這樣的:
$username = preg_replace('/\s+/', '_', $_POST['uname']);
if(preg_match('/^[a-zA-Z0-9]{5,12}+$/u', $username))
{
$username = trim(strip_tags(ucfirst($purifier->purify(@$_POST["uname"]))));
}
else
{
$message['uname']='wrong username input';
}
而對於UTF8(希伯來文)我得到這個:
if(preg_match("/^[\p{Hebrew} a-zA-Z0-9]{2,10}+$/u", $_POST['fname']))
{
//
}
這是工作完美,但我不希望允許在希伯來語用戶名只是英文。
我試圖在多種組合中玩,我試圖改變,但沒有成功,我做了StackOverflow和Google的研究,但不能讓它像我想我不明白。 我使用了RegEx網站並試圖構建,但沒有成功。
所以到現在爲止,我得到這個:
用戶可以把5-12字母/數字特殊字符。
我要的是:
- 能否5-12字母/數字沒有特別charcaters之間的輸入 - 我 已經擁有了它。
- 允許空格
preg_match
如果沒有混合語言的像E.G:$ username = santadvders sdsd; < - 不允許混合語言。
而且preg_replace
到:
- 替換空格不了了之(刪除空格),我有這個,但我不知道這是否是正確的:
$username = preg_replace('/\s+/', '', $_POST['uname']);
而且,我正在使用UTF-8語言。
編輯:
隨着HWND的幫助下,我做它的工作像我想要的最新代碼:
if(preg_match('/^[\p{Hebrew}]{2,10}|[a-zA-Z]{2,10}$/u', $_POST['fname']) && preg_match('/^[a-zA-Z]{2,10}|[\p{Hebrew}]{2,10}$/u', $_POST['fname']))
{
$message = 'valid';
}else{
$message = 'Invalid';
}
解決,謝謝。
是啊。 E.G:你用用戶名= hwnd - 可以。你使用的用戶名=רביב - 它的好。但如果你使用username = hwרב - 它不允許沒有混合語言 – Ravg
好吧,我試了它,它不好,它總是假的,即使我混合,即使我不混合,我試圖用rubular.com解決它,但你不明白爲什麼?並用最新的代碼編輯你的答案。 – Ravg