2012-06-01 118 views
5

是否可以顯示符合正則表達式的字符串?是否可以生成匹配正則表達式字符串的字符串?

例子:

以表達/^AD\d{3}/ 和顯示AD999

我在做什麼是驗證一個字符串,它是非常簡單的要麼包含了所有的數字,也許幾個字符,也許「 - 」。我正在驗證表單上的郵政編碼,該郵政編碼是針對所有使用郵政編碼的國家/地區的數據庫提交的。

我可以在Javascript或PHP中執行它,如果這有什麼不同。

+6

一般來說,有很多與正則表達式匹配的字符串 - 至少對任何有用的正則表達式都是如此。你想用什麼標準來決定應該顯示多個匹配字符串中的哪一個? –

+0

您如何從'/^AD \ d {3} /'中知道它是AD999而不是AD001? – ceejayoz

+0

他只是想顯示有效輸入的示例。 –

回答

4

不。這種功能不可用。

你可以嘗試自己實現它,但我不認爲這是你的解決方案。簡單地寫信息通常。並非所有事情都必須是動態的。

雖然我喜歡你的思維方式。

+0

我剛纔發現如果我可以將它倒過來,它會在數據庫中保存另一個字段。 – Rodney

+0

爲什麼數據庫中有另一個字段有問題? –

+0

沒有問題,當我建立的數據庫包含使用郵政編碼的世界上的每個國家時,只是很多工作。 – Rodney

2

我已經從您的其他意見中更好地理解了您的問題。

因爲你的數據是唯一的郵政編碼,我認爲它可能會在另一個方向和存儲圖片在數據庫中,自動生成一個正則表達式。

例如,英國郵政編碼看起來像AA?99? 9AA | AA?9A 9AA這很容易轉換爲正則表達式(使用正則表達式!)。

+0

或者更一般地說,有一個領域特定的語言,您可以從中生成示例和正則表達式。另外,SAN 1TA是一個有效的英國郵政編碼,用於向聖誕老人發送信件的兒童,還有一些其他奇怪的例子。你是否想要接受表單上的人是另一回事。 –

+1

小心 - 它是'SAN TA1'。你不想讓這些信件誤入歧途! – Borodin

4

這是可能的developers of PEX figured it out

不要讓你的希望上升,我不知道任何的JavaScript實現。

+0

鏈接已斷開,但請參閱下面的Pepijn答案以獲取非常好的JavaScript實現 – Carlton

相關問題