2017-07-26 67 views
1

到目前爲止,我有地址確認以下的正則表達式以及事件按鍵:正則表達式的字母,逗號,連字符,句號 - 地址驗證

用正則表達式更新了工作原理基於以下評論:

const ADDRESS_REGEX = /^[a-zA-Z0-9\s.,'-]*$/; 

addressValidation(event){ 
if (!ADDRESS_REGEX.test(event.key) && event.key !== "Tab" && event.key !== "Delete" && event.key !== "Backspace" && event.key !== "ArrowLeft" && event.key !== "ArrowRight" && event.key !== "Enter" && event.key !== "NumpadEnter"){ 
    return false; 
} 
} 

它正常工作,除了阻塞期間。我如何更新正則表達式以允許句點?一個更大的問題是字母數字,逗號,hypen,期限是否正確,用於地址驗證?

問題2

如何用上述正則表達式來體改檢查號,後面的詞或字,接着數。例如: 「33街頭隨機」或 「9西57街」

+1

添加了 - '/^[A-ZA-Z0-9 \ S。 ,' - ] * $ /' –

+1

使用'event'對象的''''屬性,你不能保證它可以在移動設備上工作。 – revo

+0

@WiktorStribiżew您的回答有效。另外,你如何更新你的答案來檢查字母與空格,然後數字,反之亦然? – Anthony

回答

1

您可以使用

/^[a-zA-Z0-9\s.,'-]*$/ 
      ^

點陣字符類中總是會匹配一個點,沒有必要逃避它。

查看regex demo

注意@ revo對使用event對象的key屬性(不能保證它可以在移動設備上工作)的潛在問題發表評論。

對於問題的第二部分,您可以嘗試

^[^\W_]+(?:[\s.,'-][^\W_]+)*$ 

見9regex演示(https://regex101.com/r/q6LoSE/3

+0

如何更新這個來阻止撇號? – Anthony

+1

「Block」?如果一個字符串包含''',返回不匹配/ false?將其從模式中刪除:)。 '/^[a-zA-Z0-9 \ s。, - ] * $ /' –

+0

Duh,嘗試了一堆東西,但是。謝謝! – Anthony

相關問題