둘다 기본 의미는 같음 - 문자열에 지정한 글자가 들어있냐 없냐를 검사해주는거임
'abc'.includes('a') / true -
'abc'라는 string에 'a'가 들어있냐 없냐를 판단해줌
조금 더 심화로 배우면
/a/.test('abcde') / true - 이 방법은 좋은게 범위를 지정해서도 문자 검사가 가능
예를 들어 영어가 들어있는지 검사하고 싶으면
/[a~z]/.test('한글') 하면 a b c d e f g ~~ 가 저 문자열 안에 하나라도 들어있는지를 체크해줌
/[A~Z]/ 하면 대문자로 체크해줌
여기서 주의할점은(나만 헷갈리는거 같지만..)
string전체에 저 지정 문자가 들어있냐? 이런건 체크 안(못)해줌. 그냥 저것중에 하나라도 들어있냐를 체크해주는거임
로그인 폼 만들때 특수문자, 대문자 이런거 쓰지말랬는데 쓰는사람들한테 경고창띄우고 이런데 쓰면 될듯
<여기부턴 그냥 필요할때마다 찾아서쓰기>
[a-zA-Z] - 영어 대소문자 하나라도 들어있냐
[ㄱ-ㅎ가-힣ㅏ-ㅣ] - 한글 자음모음중에 하나라도 들어있냐
[0~9] - 숫자 하나라도 들어있냐
\S - 귀찮은데 그냥 문자 하나라도 들어있냐 ( 대신 특수기호도 포함해줌 ) - 공백넣으면 false란소리
/^a/.test('abcde') //true
/e$/.test('abcde') //true
^a 라고 적으면 a로 시작하는지 검사할 수 있습니다.
e$ 라고 적으면 e로 끝나는지 검사할 수 있습니다.
/(e|f)/.test('abcde') //true
| 이건 or 기호입니다.
그래서 위 코드는 e 또는 f중 아무거나 한 문자가 있나 검사가능합니다.
정규식에선 괄호맘대로 칠 수 있습니다.
(귀찮아서 퍼옴)
+라는게 나오는데
/a+/ 하게되면 a 한 글자만 찾으라는게 아니라 뒤에 오는 글자들도 쭉 똑같은지 찾으라는 뜻
/\S+t/ 하면 \S가 +를 만난거니깐 문자 여러개 다음에 t라는 게 있는지를 찾아줌 ex)sdfsdf't' 이런거
이메일 폼에
/\S+@\S+\.\S+/
풀어쓰면 \S+ 여러문자 뒤에 @ 오고 또 여러문자 뒤에 . 오고 여러문자로 끝나는지가 맞냐는 뜻(ㅈㄴ헷갈리네)
$('form').on('submit',function(e){
var 입력한값 = document.getElementById('email').value;
if ( /\S+@\S+\.\S+/.test(입력한값) ){
alert('이메일형식아님')
e.preventDefault();
}
});
이런식으로 하면 이메일 형식 맞는지 확인가능
'JS' 카테고리의 다른 글
자바스크립트 동기 처리 / promise 문법 (0) | 2022.10.14 |
---|---|
자바스크립트로 점수판 만들기 (0) | 2022.10.12 |
Destructing 문법 (0) | 2022.10.05 |
get/set (0) | 2022.10.02 |
extends - super (0) | 2022.10.02 |