[英]How can I replace dot with comma but only for numbers in a string ? (PHP)
[英]How can I Accept only letter, number, comma (,) and dot (.) using php
我想使用以下正則表達式只接受字母,數字,逗號和點。 如果我使用$string
它會說無效數據但是如果我使用$string2
它就是說有效數據。
1)為什么$string
不接受有效數據? 我錯過了什么?
2)如果我接受逗號,我怎么能逃脫它? 使用mysqli_real_escape_string? 如果是這樣的話,當我從Db顯示它時它會顯示反斜杠。 請幫忙。 謝謝。
$string = "I m a good boy";
$string2 = "Imagoodboy";
if(preg_match("/^[a-zA-Z0-9]+$/", $string) == 0)
echo "Invalid data";
else
echo "Valid data";
你需要包括.
在你的角色類中並反轉你的if條件檢查:
if(preg_match('/^[a-zA-Z0-9.]+$/', $string))
echo "valid data";
else
echo "InValid data";
$string
也有空格,空間不在你允許的字符列表中,這就是它失敗的原因。 如果你想包含空格也使正則表達式為:
/^[a-zA-Z0-9. ]+$/
First String包含空格。 根據你的正則表達式,空間無效。要驗證$ string,你必須在正則表達式中創建有效的空格。
嘗試這個 :
preg_match("/[^a-zA-Z0-9., ]/",$string);
^
Space
我認為問題來自$ string中的空格。
在捕獲組中添加空間
if(preg_match("/^[a-zA-Z0-9. ]+$/", $string) == 0)
echo "Invalid data";
else
echo "Valid data";
它應該工作正常
你錯過了一個空間.
, 試試吧:
if(preg_match("/^[\d\w\s\.]+$/", $string) == 0)
echo "Invalid data";
else
echo "Valid data";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.