2013-01-09 5 views
0

나는 자바 스크립트에 꽤 새로 왔습니다. 의 텍스트에 네 자리 연도가 포함 된 경우 어떻게 찾을 수 있습니까?년 자바 스크립트 정규식

예를 들어

:

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

'9876'을 1 년으로 간주 하시겠습니까? 아니면 ** 네 자리 숫자가 있다면 그것은 1 년이 될 것입니까? 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()에 충분히 근접합니다 (인쇄 할 수없는 제어 문자도 삭제되지 않음). 테스트하기를 원한다면

또한, 올해는 유효한 년 (적어도 자바 스크립트를 처리 할 수있는만큼 유효), 당신이 내 크롬에 ...

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

비록을 할 수있는,이 뜻이라면 xx19xx이고 4 자리 10 진수 이상의 날짜를 처리한다고 가정합니다.

+0

그건 '1234a'의 유효성을 검사 할 것이기 때문에'^'와'$'(시작/끝)도 설정해야한다고 생각합니다. – David

+0

질문은 텍스트가 _ 연도를 포함하고 있는지의 여부였습니다. 따라서^U $ 앵커를 제거해야합니다. – david

+0

@ david 감사합니다. – alex

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

나는 앵커가'^ $ '인 경우에 년이 포함되는지 여부를 묻는 질문에 잘못이 있다고 생각합니다. – david

+0

방금 ​​OP가 4 자리 숫자에 대한 전체 입력의 유효성을 검사하려는 경우에 대비하여이 답변을 보관하고 있지만 사실 깨달았습니다. – David