2013-04-05 2 views
0

문자로 시작하는 경우 텍스트에서 각 단어를 테스트하고 싶다면 # 변수 '응답'에 단어를 넣습니다. 그렇지 않으면 계속 검색합니다.특정 문자로 시작하는 텍스트에서 단어 나누기

var found = false; 
for (i = 0; i < text.length; i++) { 
    if (found = /^#...$/.test(text[i])) { 
     found = true; 
    } 
    if (found== true){ 
      //other stuff 
    } 
} 

이이 일을 도와 수 : 내가 좋아하는 뭔가를 시도? #로 시작하는 모든 일치

var found = false, response; 
for (i = 0; i < text.length; i++) { 
    if (/^#.*$/.test(text[i])) { 
     found = true; 
     response = text[i]; 
     break; 
    } 
} 

:

+0

Demo

'각각은 "단어"는 무엇을 의미하는 정의 word'. 비 공간 시퀀스? 영어 알파벳 시퀀스 (나머지 언어는 무시)? – nhahtdh

+0

영어 알파벳과 같은 단어로, 언급 한대로 공백이 아닌 순서입니다. – Edeph

+0

비 공백 순서에는 숫자, 구두점, 모든 언어의 문자 등이 포함될 수 있습니다. 영어 알파벳 순서는 ** 영어 이외의 언어에서 ** 숫자, 구두점 및 문자를 제외합니다 (목록은 고갈되지 않음). – nhahtdh

답변

1

공백으로 나누기를 사용하고 부분 문자열을 사용하여 첫 번째 문자를 찾을 수 있습니다. 그런 다음 비교해보십시오.

var arr= text.split(' '); 

for (i = 0; i < arr.length; i++) { 
    if (arr[i].substring(0,1) == '#') { 
     console.log('found!: ' + arr[i]); 
     break; 
    } 
} 
+0

Arr에는 첫 번째 단어 만 포함됩니까? 나 한테 좀 좀 설명해 줄 수있어? – Edeph

+0

Arr은 문자열이되는 모든 단어를 포함하는 배열입니다. for 루프는 배열을 반복합니다. 하위 문자열 (0,1)은 현재 단어의 첫 번째 문자를 반환합니다. 그러면 '#'과 비교됩니다. 그것이 사실이라면 if 절 안에 들어갑니다. –

0

당신은 아마 뭔가를 원한다. 공백이 아닌 문자를 일치시키려는 경우 RegEx /^#(\S)*$/

+0

나는 생각한다. #로 시작하는 모든 단어가 하나씩 처리되기를 원하기 때문에이 경우 이해가되지 않습니다. – Edeph

관련 문제