這段代碼取自codeigniter,我試圖將其複製到允許數字字符和破折號的新函數中。我需要添加到這個正則表達式以允許破折號和括號?如何在此正則表達式中包含短劃線
preg_match('/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
這段代碼取自codeigniter,我試圖將其複製到允許數字字符和破折號的新函數中。我需要添加到這個正則表達式以允許破折號和括號?如何在此正則表達式中包含短劃線
preg_match('/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
你的正則表達式含義: 開始行用 - 或+ MAYBE 然後0-9零次或多次 然後一個。 MAYBE 然後以以下數字中的至少一個結束:0-9
您需要指定要RegEx執行的操作,然後有人可以編寫正確的RegEx。
編輯 在這裏你去:
<?php
// 555-555-5555 or (555) 555-5555 or (555)555-5555
$str = '555-555-5555';
if (preg_match('/^((\([0-9]{3}\)) ?|[0-9]{3}-)[0-9]{3}-[0-9]{4}$/', $str) == 1){
echo 'Yes!';
}else{
echo 'No!';
}
?>
問題中發佈的代碼是直接從form_validation類中的codeigniter函數「Numeric」中獲取的。我只是想給它添加破折號和括號,以便它們也被允許。 – Catfish
@Catfish,您標記爲正確的答案允許使用+ - - )(0'這看起來像任何人的電話號碼嗎? – keyboardSmasher
對我的應用程序來說沒關係,因爲我除了數字之外的任何東西都可以將它插入數據庫。輸入多種格式 – Catfish
將它們添加到字符類? *另請參閱[開源RegexBuddy替代品](http://stackoverflow.com/questions/89718/is-there)和[在線正則表達式測試](http://stackoverflow.com/questions/32282/regex-testing)for一些有用的工具,或[RegExp.info](http://regular-expressions.info/)一個更好的教程。 – mario