2016-10-16 4 views
-3

다음 내용이 있습니다.자바 스크립트는 정확한 일치 문자열을 대체합니다.

var string = '1,7,12,15,16,29';

난 그냥 숫자 1을 교체하려는 경우, 난은 다음

removeStr(1); 

function removeStr(str1) 
     { 
      var string = '1,7,12,15,16,29'; 
      var newstr = string.replace(str1, ''); 
      alert('new val is ' + newstr); 
     } 

그러나이 일을, 12,15,16에서 숫자 1을 제거 끝날 사용합니다.

이 예제에서는 정확히 일치 항목 을 어떻게 삭제합니까?

감사합니다.

+1

"* 그러나이 일을, 12,15에 숫자 1을 제거 끝날 것입니다, 16. * "- 할 것인가? 나는 게시 된 코드에서''1 ''문자의 첫 번째 항목 만 제거한다는 것을 확신합니다. –

+0

코드는'new val is, 7,12,15,16,29'을 생성합니다. 'replace'는 첫번째 일치를 대체합니다 – Oriol

답변

0

당신은 단지 전체 단어 일치하는 정규 표현식에 경계 (\b)를 사용할 수 있습니다. 귀하의 질문에 적용 할 것 곳 하나에 테스트 문자열을 변경

function removeStr(str1) 
 
{ 
 
    var string = '11,71,12,1,16,21'; 
 
    var newstr = string.replace(new RegExp("\\b"+str1+"\\b"), ""); 
 
    console.log('new val is ' + newstr); 
 
} 
 

 
removeStr("1");

-1

문자열로 처리하려고합니다. 당신이 배열에게 그것을

var string = '1,7,12,15,16,29'; 
 
var arr=string.split(","); 
 
var newArr=arr.splice("1"); 
 
string=newArr.join(","); 
 
console.log(string);

희망을 만들기 위해 고려해 볼 수 있습니다이

0
function replaceOne(str1, str2){ 
var arr = str2.split(","); 

var newStr = ""; 

for(var i=0; i<arr.length; i++){ 
    if(arr[i]!=str1){ 
     newStr = (newStr=="")?arr[i]:newStr+","+arr[i]; 
    } 
} 

console.log(newStr); 

}

+0

이 코드가 어떻게 OP에 도움이되는 지에 대한 설명을 추가하십시오. 설명이없는 코드는 미래 방문자를 돕지 않습니다. 또한 FAQ에서 [내 코드 블록의 형식은 어떻게 지정합니까?] (http://meta.stackoverflow.com/q/251361/215552)를 살펴보십시오. –

관련 문제