2013-08-08 2 views
-1

플래시 입력 텍스트 필드에 편집 옵션을 만들 예정입니다. 라이브 단어 수가 필요합니다. 사용자가 입력하는 단어의 수를 계산하려면 어떻게해야합니까?AS3 텍스트 필드에서 실시간 단어 카운터를 만드는 방법은 무엇입니까?

+0

정규식이 당신의 친구입니다. 문자열의 시작이나 끝이 아닌 공백을 맞추고, 배열의 길이를 얻은 다음 첫 단어에 1을 더합니다. 충분히 쉬워. –

+0

왜 1을 더합니까? 배열의 길이는 얼마나 많은 단어가 있는지입니다. – Ribs

+0

@Ribs 당신은 분열을 생각하고 있습니다. 이것이 더 나은 경로일지도 모릅니다. RegEx를 사용하면 공간을 계산합니다. 이 문장은 9 단어지만 8 칸 밖에 없습니다. 따라서 그 차이를 설명하기 위해 하나를 추가해야합니다. –

답변

1

시도 뭔가 :

function countWords(input:String):int 
{ 
    // Match collections of non-whitespace characters. 
    return input.match(/[^\s]+/g).length; 
} 

일부 테스트 :

trace(countWords("")); // 0 
trace(countWords("Simple test.")); // 2 
trace(countWords(" This is an untrimmed string ")); // 5 
+0

나는 단어를 살고 싶다. 각 스페이스 키를 누르면 단어 수가 업데이트됩니다. 나는 어떻게하는지 모르겠다. – Amir

+0

@Amir 콘텐츠가 변경되어 그 내부에서 내 기능을 사용할 경우 이벤트 수신기를 TextField에 연결해야합니다. – Marty

+0

'myTextfield.addEventListener (Event.CHANGE, countWords);'를 의미하는 경우 ' 그것은 작동하지 않습니다. – Amir

1

텍스트 필드의 단어 수를 얻으려면 텍스트 필드의 문자열을 공백으로 나눕니다. 텍스트 필드에있는 모든 단어의 배열을 반환합니다. 입력 얼마나 많은 단어를 말할 배열의 길이를 가져옵니다 :

var words:Array = myTextFieldInput.split(' '); 
var numberOfWords = words.length; 

한 텍스트 필드를 선택할 수 있는지 등의 텍스트 필드에서 텍스트를 복사하고 다른에 붙여에 관해서는, 그 동작은 운영 네이티브해야한다 체계. 우리가 공백이 아닌 문자의 그룹을 계산이 같은

+0

서로 옆에 공백을 두어 줄 바꿈 등을주의하십시오. 또한 'myTextField'라는 이름은 TextField를'분할 할 수 없기 때문에 약간 오해의 소지가 있습니다. – Marty

+0

고마워요.하지만 공백은 단어로 계산됩니다. – Amir

+0

@marty - 좋은 캐치, 편집 됨, thx. – Ribs