[javascript] 공백이나 쉼표로 JavaScript 문자열을 어떻게 나눌 수 있습니까?

내가 시도하면

"my, tags are, in here".split(" ,")

나는 다음을 얻는다

[ 'my, tags are, in here' ]

내가 원하는 반면

['my', 'tags', 'are', 'in', 'here']



답변

String.split 정규식을받을 수도 있습니다.

input.split(/[ ,]+/);

이 특정 정규식은 하나 이상의 쉼표 또는 공백 시퀀스에서 분할되므로 예를 들어 여러 연속 공백 또는 쉼표 + 공백 시퀀스가 ​​결과에 빈 요소를 생성하지 않습니다.


답변

사용 제안 .split(/[ ,]+/)은 좋지만 조만간 자연스러운 문장 을 사용 하면 배열에 빈 요소가 생깁니다. 예 : ['foo', '', 'bar'].

유스 케이스에 괜찮다면 괜찮습니다. 그러나 빈 요소를 제거하려면 다음을 수행 할 수 있습니다.

var str = 'whatever your text is...';
str.split(/[ ,]+/).filter(Boolean);


답변

임의의 길이의 공백을 포착하기 위해 정규식을 사용할 수 있으며 다음과 같습니다.

var text = "hoi how     are          you";
var arr = text.split(/\s+/);

console.log(arr) // will result : ["hoi", "how", "are", "you"]

console.log(arr[2]) // will result : "are" 


답변

"my, tags are, in here".split(/[ ,]+/)

결과는 다음과 같습니다.

["my", "tags", "are", "in", "here"]


답변

input.split(/\s*[\s,]\s*/)

\s*0 개 이상의 공백 문자와 일치합니다 (공백뿐 아니라 탭 및 줄 바꿈도 포함).

[\s,]하나의 공백 문자 또는 하나의 쉼표와 일치

같은 입력에서 빈 요소를 피 "foo,bar,,foobar"하려면 트릭을 수행합니다.

input.split(/(\s*,?\s*)+/)

+하나 이상의 선행 문자 또는 그룹과 일치합니다.

편집하다:

?0 개 또는 1 개의 쉼표와 일치하는 쉼표 뒤에 추가 됩니다.

편집 2 :

편집 1이 실수로 밝혀졌습니다. 고쳤다. 이제식이 일치하는 항목을 찾으려면 적어도 하나의 쉼표 또는 하나의 공백이 있어야합니다.


답변

쉼표와 같은 추가 문자를 고려할 때 (내 경우에는 각 토큰이 따옴표로 입력 될 수 있음) string.replace ()를 수행하여 다른 구분 기호를 공백으로 변경 한 다음 공백으로 분할합니다.


답변