2017-10-18 2 views
0

문자열로 패턴을 분할하는 데 문제가 있습니다. String.prototype.split을 사용하여 문자열을 분할 할 수 있다는 것을 알고 있습니다. 그러나 그것을 사용하면 구획 문자가 없어집니다. 예를 들어 내가 ["{user}", " foo bar ", "{time}", " test test"]텍스트를 잃지 않고 문자열로 패턴을 분할하는 방법은 무엇입니까?

이다가 split 달성 할 수 있습니다 기대

const text = '{user} foo bar {time} test test'; 
const arr = text.split(/\{[a-z]*\}/) 
// arr = ["", " foo bar ", " test test"] 

를 들어

?

+2

사용'text.split을 (/ (\ {[AZ] *}) /) 필터 (부울)'당신이 할 –

+0

없습니다. 복잡한 RegExp가 필요합니다. 그냥이'text.split ("");' – Krusader

+1

@ Krusader''foo bar ''및''test test "' –

답변

2

다음 경기를 시도해보십시오

const text = '{user} foo bar {time} test test'; 
 
const arr = text.match(/\{.*?\}|\b[\w\s]+\b/g); 
 
// arr = ["", " foo bar ", " test test"] 
 

 
console.log(arr)

관련 문제