내가 시도하면
"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 ()를 수행하여 다른 구분 기호를 공백으로 변경 한 다음 공백으로 분할합니다.