패턴이 포함 된 문자열이 있고이 값을 공백으로 분할하고 중괄호로 그룹 내부의 공백을 보존하고 공백도 보존하려고합니다.
불행히도 내 공간도 그 과정에서 걸러지고 있습니다. 그 과정에서 그들을 보존 할 수있는 방법이 있습니까?
var val = "{dimension} {equals,does not equal,contains,does not contain} {value}";
var re = /\s*(\{[a-zA-Z0-9]+\})\s*/g;
var split = val.split(re).filter(Boolean);
console.log('split',split);
전류 출력 :["{dimension}", "{equals,does not equal,contains,does not contain}", "{value}"]
예상 출력 : ["{dimension}", " ", "{equals,does not equal,contains,does not contain}", " ", "{value}"]
당신이 사용할 수있는
var val = "{dimension} {equals,does not equal,contains,does not contain} {value}";
console.log(val.match(/{[^{}]*}|[^\s{]+|\s+/g));
regex 데모를 참조하십시오 .
세부 사항 :
{[^{}]*}
- {
, 다음 이외의 0 개 이상의 문자 {
와}
|
-또는[^\s{]+
-공백 이외의 0 개 이상의 문자 및 {
|
-또는\s+
-하나 이상의 공백 문자.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다