2013-01-09 24 views
0

我對JavaScript很新穎。我如何找到一段文字包含四位數年份?年的Javascript正則表達式

例如:

var copyright = $('#copyright').val(); 
if \d{4} in copyright: 
    do something 
+4

你會認爲'9876'是一年嗎?或者你可以肯定,**如果**有四位數字,那將是一年?爲了讓您開始使用JS和正則表達式,請查看[MDN - 正則表達式](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions)。 –

+0

9876就可以了。 – David542

+1

'val()'方法用於輸入元素。從您的描述看,「版權」似乎不是一個輸入元素。是否有可能你的意思是'text()'方法呢? – Boaz

回答

2

像這樣的東西應該做...

var isValidYear = /\d{4}/.test(str); 

它看起來這是用戶輸入的,所以你可能想嘗試之前修剪字符串用這個正則表達式驗證它。或者,在開始錨點和結束錨點之間添加一個\s*,它將足夠接近trim()/$.trim()(它不會殺死不可打印的控制字符)。

另外,如果你想測試,如果今年是一個有效的年份(至少是有效的什麼的JavaScript可以處理),你可以做...

var isValidYear = ! isNaN(new Date(str, 0, 1)); 

雖然在我的瀏覽器,這將假設xx19xx並處理四位十進制數字的日期。

+0

這將驗證'1234a',我想你還需要設置'^'和'$'(開始/結束)。 – David

+0

問題是文本是否包含一年,所以你應該刪除'^ $'錨。 – david

+0

@david明白了,謝謝:) – alex

0
var copyright = $('#copyright').val(); 
if (/^\d{4}$/.test(copyright)) { 
    // do something 
} 
+0

我認爲問題是它是否包含一年,在這種情況下擁有'^ $'錨是錯誤的。 – david

+0

我剛剛意識到,雖然我保持這個答案,以防萬一OP意味着驗證整個輸入與4位數。 – David