2016-04-25 53 views
2

我試圖在末尾(\n)找到一個數字的正確表達式,但每次都不起作用。不支持跳行的正則表達式 n

我的正則表達式是/^\d+(\n)$/

編輯:文本區域包含:

22\n 
33 

這裏是我的代碼(我試圖驗證什麼在textarea的,它只是在每個線的一端與\n去那裏數):

function valideChamp() 
{ 
    var rExp1 = /^\d+(\n)$/; 
    var aChamps = document.querySelector("textarea").value; 

    if (rExp1.test(aChamps.value)==true){ 
    alert("Valide") 
    } 
    else { 
    alert("Invalide") 
    return false; 
    } 
} 
+0

''123 \ n'.match(/^\ d +(\ n)的$ /)'工作正常。 –

+0

我不熟悉.match,它有什麼作用? – user6074580

+0

它匹配字符串中的正則表達式模式。 –

回答

1

如果要檢查僅包含在它爲數字的線,你可以使用:

/(^|\n)\d+(\r?\n)/ 

如果你只是想檢查是否有隻有一個數字,然後換行,並沒有別的:

/^\d+(\r?\n)$/ 

(這就是你檢查,但是這是一個奇怪的輸入模式)

如果您想確保textarea只有行號是數字,那麼檢查string.replace(/[0-9\r\n]/g, '') == ''可能會更簡單。這將確認它是否僅包含數字和換行符。

+0

第一部分工作,但我認爲代碼中有一些東西,現在是代碼問題,而不是正則表達式。謝謝! – user6074580

+0

有關雙'.value'的其他答案肯定是對的,我沒有注意到。 –

+0

是的,我刪除了,但仍然,現在一切都是有效的,即使它不應該是haha – user6074580

1

刪除這條線 「價值」 : 如果(rExp1.test(aChamps.value)== TRUE){

+0

它現在不是真正的工作,而不是一切都無效,現在一切都有效哈哈 – user6074580

+0

你需要更新你的正則表達式,以及根據託德Christensen。看到這個小提琴:https://jsfiddle.net/n7xy3Ln4/ – guest