簡體   English   中英

正則表達式允許撇號

[英]Regex expression to allow an apostrophe

我一直在查看有關此主題的所有其他帖子,但我仍然無法獲得我的正則表達式以允許撇號。 我認為以下應該可以工作,但它一直出錯。 它允許所有其他字符,數字和字母,而不是'(我需要它像邁克的話)

/^([-a-zA-Z\/\-\&\\\?\!\,\.\'\"\s0-9@:=_]{1,1000})$/

驗證表單和以下部分內容需要正則表達式:

public $regex = array ('char' => "/^[a-zA-Z.\s]{0,50}$/", 
                       'misc' => "/^([-a-zA-Z\/\-\&\\\?\!\,\.\'\"\s0-9@:=_]{1,1000})$/");

if(preg_match($this->regex[$validation],$this->filteredValue[$fieldName])) { 
    $this->messageArray[$fieldName] = '<span class="cheers"> &nbsp; Thank You</span>';   
}

誰能告訴我哪里出錯了?

\\'應該工作。 我不能說為什么不這樣做。 但是,我可以提供一種解決方法。 您可以嘗試將'替換為具有相同字符的十六進制表示。 而不是使用\\'嘗試使用\\x1b

另外,你應該將[ \\-移動到\\-只是-[]的末尾

/^([-a-zA-Z\/\&\\\?\!\,\.\x1b\"\s0-9@:=_-]{1,1000})$/

我不明白什么是-一開始是......


編輯:看到你對你得到的錯誤的最后評論后,我只能假設你錯誤地發現了你所遇到的問題。 對於我所看到的假設您的正則表達式都很好,但是您的SQL語句中存在問題,因為您沒有轉義數據。

您應該使用mysql_real_escape_string來熟悉自己,並確保在所有查詢中使用它。 例如:

<?php
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
mysql_query($query);

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM