1
我正在爲pl/sql編寫一個函數來驗證郵政編碼。驗證條件是它應該只接受4位數字,並且將null作爲有效代碼。以下是我寫的內容:使用正則表達式驗證郵政編碼
create or replace function is_valid_zip(p_zip_code in varchar2)
return boolean
is
begin
if (length(trim(p_zip_code)))<>4
then return false;
elsif (owa_pattern.match(p_zip_code,'\b\d{4}\b'))
then return true;
elsif (p_zip_code is null)
then return true;
else
return false;
end if;
end;
以上代碼接受'!234'作爲有效代碼。我不知道我在哪裏wrong.Can有人指出錯誤代碼
但howcome 「!234」 正在使用 「\ B \ d {4} \ b」 的正則表達式匹配?我的意思是d {4}應該匹配字符串右邊的4位數字? –
至少在.net正則表達式工程 - http://refiddle.com/si1 –
感謝您的回覆Gaurang。它的在線鏈接工作正常,但是當我在代碼中替換它時,它顯示「1234」無效。 elsif(owa_pattern.match(p_zip_code,'^ null $ |^\ d {4} $')) 然後返回true; – Esha