다음의 리스트에서 딸기의 개수는 몇개인가?
['사과','감','감','배','포도','포도','딸기','포도','감','수박','딸기']
#제출 답안
let fruit_list = ['사과','감','감','배','포도','포도','딸기','포도','감','수박','딸기']
fruit_list.map((value, i) => {
let count = 0;
if (value =="딸기")
count +=1;
})
console.log(count)
▶ 2
삐빅... 우연히 답은 맞았으나 틀렸다.
#정답
let fruit_list = ['사과','감','감','배','포도','포도','딸기','포도','감','수박','딸기']
let count = 0;
fruit_list.map((k)=>{
if(k == "딸기") count += 1
})
console.log(count)
▶ 2
- let count = 0; 을 map 함수 앞에 썼어야 함.
내가 쓴 답대로면 map 함수 돌 때 마다 다시 count가 0으로 돌아가겠지?- 값은 꼭 value라고 이름을 할당 안해도 됨
- 순서에 해당하는 i는 굳이 할당할 필요도 없었지
이메일 검사함수 만들기
#제출답안
function checkEmail(email){
if(email.indexOf('@')==-1){
console.log("이메일이 아닙니다.")
}else{
console.log("이메일이 맞습니다.")
}
}
checkEmail('cocomong@gmail.com')
▶ 이메일이 맞습니다.
checkEmail('cocomong#gmail.com')
▶ 이메일이 아닙니다.
오 성공적이다.
#정답
function checkEmail(email){
if(email.indexOf('@') < 0){
console.log("이메일이 아닙니다");
}else{
console.log("이메일이 맞습니다");
}
}
특정 문자를 찾을 때는 indexOf 함수를 쓴다.
해당하는 값이 있으면 해당 문자의 개수가 표시된다.
반면 해당하는 값이 없으면 -1로 표시되는데
이를 <0 으로 표현할 수 있다.
#제출답안1
구글링해서 나오는 코드 그대로 사용
function email_check(email) {
var reg = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
return reg.test(email);
}
email_check("cocomong@gmail.com")
▶ true
email_check("cocomong#gmail.com")
▶ false
#제출답안2
원하는 답변이 나오도록 구글링해서 나오는 정규식을 수정
function isEmail (strEmail){
var regExp = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
if (strEmail.length > 0 && strEmail.search(regExp) == -1){
console.log("이메일이 아닙니다.")
}else {
console.log("이메일이 맞습니다.")
}
}
isEmail("cocomong@gmail.com")
▶ 이메일이 맞습니다.
isEmail("cocomong#gmail.com")
▶ 이메일이 아닙니다.
#정답1
@ 가 이메일에 있는지 없는지를 판별하면서,
동시에 @ 기준으로 앞뒤에 특수문자가 들어가면 이메일이 아님을 알려주는 간단 정규표현식(ex. gunhee2#1@gmail)
function checkEmail(email){
var emailRule = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(!emailRule.test(email)){
console.log("이메일이 아닙니다");
}else{
console.log("이메일이 맞습니다");
}
}
checkEmail("gunhee21@gmail.com");
▶ 이메일이 맞습니다.
checkEmail("gunhee21#gmail.com");
▶ 이메일이 아닙니다.
#정답2
gunhee@gmail 처럼 도메인 뒤에 .com 이 없는 경우를 판별할 수 있는 정규표현식
//도메인에 .com이 없는 경우까지 판별
function email_check( email ) {
var regex=/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
return (email != '' && email != 'undefined' && regex.test(email));
}
console.log(email_check('gunhee21@gmail'))
▶ false
KPT