2017-09-06 3 views
2

/에 문자열을 나눌 수 있지만 // 또는 ///에없는 문자열을 분할하고 싶습니다.
내가 뭘하려 :
정규 표현식은 js에서 하나 또는 복수 선택하지 않음

  1. /[^\/]\/[^\/]/g 만하고 / 후 선택해야합니다 전에 내가 문자를 원하지 않는다.
  2. /\b\/\b/g\b\w에 대해서만 계산되기 때문에 작동하지 않습니다.
  3. /(?<!\/)\/(?!\/)/g하지만 lookbehind는 javascript에서 지원되지 않습니다.

목표를 달성 할 수있는 방법을 찾을 수 없습니다. 누구든지이 해결책을 가지고 있습니까? 아니면 그냥 자바 스크립트에서 가능하지 않습니까?

답변

2

당신은

.match(/(?:\/{2,}|[^\/])+/g) 

regex demo

(?:\/{2,}|[^\/])+ 패턴은 하나 이상의 (+)과 일치 2 개 이상 / 문자 또는 문자하지만 /의 발생을 참조하십시오 사용할 수 있습니다. 이는 하나의 문자 (/)까지 일치하는 문자를 의미합니다. 단일 /하지만

var rx = /(?:\/{2,}|[^\/])+/g; 
 
var s = "a/b//c///d////r"; 
 
console.log(s.match(rx));

+0

자, 이제이 선택되어 모든 것을. 하지만 실제로 그들을 선택하고 싶습니다. 전체 표현을 부정 할 수 있습니까? –

+1

@ S.Babovic'split()'메소드를 사용할 수 없습니다. 앞에서 설명한대로'.match()'를 사용하십시오. 좋습니다. 크롬에서는 lookbehind (일부 특수 옵션을 사용하도록 설정)를 사용하는 방법이 있지만 JS 정규식의 경우 비표준 구문입니다. –