제목 | 자바스크립트 정규식 질문 | ||
---|---|---|---|
글쓴이 | 토끼와거북 | 작성시각 | 2014/04/07 05:03:23 |
|
|||
문자열에서 (가) 에서 (차) 까지 해당하는 문자열이 있을 경우 위치를 반환받고자 합니다. 아래 부분에서 '(' 과 ')'는 어떻게 추가해야 할까요?
text = "(가) 남자의 의복에서 가장 사치스러운 호사가 마고자다. 바지, 저고리, 두루마기 같은 다른 옷보다 더 값진 천을 사용한다. 또 남자 옷에 패물이라면 마고자의 단추다.(나) 나는 마고자를 입을 때마다 한국 여성의 바느질 솜씨를 칭찬한다.(다) 문화의 모든 면이 다 이렇다. 전통적인 안목과 전통적인 솜씨가 있으면 남의 문화가 아무리 거세게 밀려든다 할지라도 이를 고쳐서 새로운 제 문화를 이룩하는 것이다.(라) 마고자는 원래 중국의 마괘자에서 왔다 한다. 이것이 우리나라에 들어와서 마고자가 됐다는 것이다. 그러나 마고자는 마괘자와 비슷도 아니 한 딴 물건이다. 한복에는 안성맞춤으로 어울리는 옷이지만, 중국옷에는 입을 수 없는, 우리의 독특한 옷이다."; var len = text.length; for(var i=0; i < len; i++){ if(text.charAt(i).match(/[가-차]/)){ return i; } } |
|||
다음글 | 검색 게시판을 작성시.. 문제가 생겼습니다... (4) | ||
이전글 | $DOCUMENT_ROOT 로 절대 경로 인식 못할 때... (5) | ||
letsgolee
/
2014/04/07 08:27:19 /
추천
0
|
토끼와거북
/
2014/04/07 09:54:11 /
추천
0
역슬래쉬를 이용해 보았는데 먹지 않네요.
|
한대승(불의회상)
/
2014/04/07 10:29:13 /
추천
0
토끼와거북// 다시 한 번 확인해 보세요.
\([가-차]\) |
토끼와거북
/
2014/04/07 11:31:44 /
추천
0
아래와 같이 하니까 안 되네요.
<script> $(function(){ str_test(); }); function str_test(){ text = "(가) 고구려 (나) 백제 (다) 신라 (라) 조선"; var len = text.length; for(var i=0; i < len; i++){ if(text.charAt(i).match(/\([가-차]\)/)){ alert(i); } } } </script> |
한대승(불의회상)
/
2014/04/07 11:57:21 /
추천
0
토끼와거북// 글자를 한자씩 나누면 당연히 안되겠죠.
|
letsgolee
/
2014/04/07 12:27:20 /
추천
0
[code]
var text = "(가) 남자의 의복에서 가장 사치스러운 호사가 마고자다. 바지, 저고리, 두루마기 같은 다른 옷보다 더 값진 천을 사용한다. 또 남자 옷에 패물이라면 마고자의 단추다.(나) 나는 마고자를 입을 때마다 한국 여성의 바느질 솜씨를 칭찬한다.(다) 문화의 모든 면이 다 이렇다. 전통적인 안목과 전통적인 솜씨가 있으면 남의 문화가 아무리 거세게 밀려든다 할지라도 이를 고쳐서 새로운 제 문화를 이룩하는 것이다.(라) 마고자는 원래 중국의 마괘자에서 왔다 한다. 이것이 우리나라에 들어와서 마고자가 됐다는 것이다. 그러나 마고자는 마괘자와 비슷도 아니 한 딴 물건이다. 한복에는 안성맞춤으로 어울리는 옷이지만, 중국옷에는 입을 수 없는, 우리의 독특한 옷이다."; var len = text.length;
for(var i = 0; i < len; i++) {
var c = text.charAt(i);
if (c == '(')
{
var s = text.substr(i, 3);
var r = /^\([가-차]\)$/;
if (s.match(r))
{
alert(i);
i = i+3;
}
}
}
[/code] 한대승님이 언급한 것처럼 charAt은 한 캐릭터만 가져옵니다. 그걸 match할 수는 없지요. |
토끼와거북
/
2014/04/07 12:58:11 /
추천
0
letsgolee 님 정상 작동합니다. 감사드립니다.^^
|
도라에몽
/
2014/04/07 13:04:05 /
추천
0
꼭 위치를 반환 받아야 하는것이 아니라면.. 아래처럼 하는건 어떨까요?. ^^;
var text = "(가) 고구려 (나) 백제 (다) 신라 (라) 조선"; $(function(){ var str_arr = str_test(); console.log(str_arr); }); function str_test(){ var pattern = /\([가-차]\)/; var arr = text.split(pattern); return arr; } |
토끼와거북
/
2014/04/07 20:45:50 /
추천
0
브라이언님이 알려 준 방식이 더 간편하네요. 원래 목적은 패턴값으로 문자열을 잘라내는 것이었거든요.
알려주셔서 감사드립니다.^^ |
[code]
.match(/\([가-차]\))
[/code]