2016-08-16 1 views
-1

나는 세 개의 변수가 있습니다빼면 두 개의 텍스트 변수

주요 캐릭터 :

The quick brown fox jumps over the lazy dog. 

첫 번째 서브 문자열 :

over the lazy dog. 

및 제 2 서브 문자열 :

the lazy dog. 

"over"라는 단어를 격리하려고합니다. 첫 번째 문자열에서 두 번째 문자열을 뺍니다.

편집 : 긴 문자열의 길이를 측정하고 그 두 번째 문자열의 길이를 감산함으로써 형성 해결

. 그런 다음 그 값을 첫 번째 문자열의 하위 문자열로 사용합니다.

+0

→ http : //regular-expressions.info... !?? – deceze

+2

'21'과'-12' 길이는 정확히 얼마나 알고 있는데, 찾고있는 문자열의 길이를 모르십니까? – deceze

+1

구성 요소에서 문자열을 분할하는 방법 (간격을 구분 기호로 사용)과 두 부분을 재구성하는 방법은 무엇입니까? 문자열의 기본 구조 (즉, 필드 수, 순서 및 의미)를 미리 알고있는 경우에만 작동합니다. – FDavidov

답변

0

당신이 사용할 수있는 문자열()를 얻기 위해 "전체 문자열에 replace 방법을 사용하고"로 출력을 대체 사용할 수 있고, 엔드 세그먼트 길이.

var metar = document.getElementById("metartext").innerHTML; 
var result = metar.substring(21, metar.length - 11); 

console.log(result); 
1

당신은 /\s+(.*)/와 함께 첫 번째 공백 후 모든 것을 일치시킬 수 있습니다 :

var s = "CAVOK 18/13 Q1025"; 
 
var m = s.match(/\s+(.*)/); 
 
if (m) { 
 
    console.log(m[1]); 
 
}

패턴이 자세한 사항 :

  • \s+ - 하나 이상의 공백 (첫 번째 공백 것이다 일치 함)
  • (.*) - CR/LF 이외의 문자는 0 개 이상 (나머지 모든 줄).
0

이 코드는 아무것도 cloud2 일치 cloud1의 일부를 대체

var cloud1 = "CAVOK 18/13 Q1025"; 
 
var cloud2 = "18/13 Q1025"; 
 

 
var result = cloud1.replace(' '+cloud2,''); 
 

 
console.log(result)

work--한다. 따라서 첫 번째 비트가 남아 있습니다.

0

당신이 시작 세그먼트의 길이를 알고 있기 때문에 당신은 결과를

var cloud = cloud1.replace(cloud2, ""); 
0

정규식을 사용하여 원본 문자열에서 추출 할 수 있습니다.

var metar = 'YSSY 161000Z 02007KT CAVOK 18/13 Q1025'; 
 
var result = metar.match(/(?:.{20}\s)(\S*)(?:\s.{11})/)[1]; 
 

 
console.log(result);

0

당신은 "18/13"형식으로 날짜 앞에있는 단어Regular Expressions와 길이를 사용하지 않도록하고 일치시킬 수 있습니다 :

var metar = document.getElementById("metartext").innerHTML, 
 
    result = /(\w+) [0-9]{2}\/[0-9]{2}/.exec(metar); 
 

 
result && console.log(result[1]); // CAVOK
<p id="metartext">YSSY 161000Z 02007KT CAVOK 18/13 Q1025</p>

관련 문제