2013-10-11 1 views

답변

1

당신에게 :

var x = "asdasdasdasd+adasdasdasd/asdasdasdasd*asdasdasd-asdasdasd:asdasdasdadasdasd?"; 

나는 당신이 그런 일을 사용할 수있다 그래서 출력이

asdasdasdasd + adasdasdasd/asdasdasdasd * asdasdasd - as (dasd) asd : asdasdasdadasdasd ? 
2

처럼 전에 및

var separators = ['+', '-', '(', ')', '*', '/', ':', '?']; 

후 공간을 추가 할 그것을 위해 Regex를 사용할 수 있습니다. 이 코드를 이해하고자하는 사람들을 위해 http://jsfiddle.net/gPza4/

, 내가 무엇을 기본적으로 수행하는 것은 구분을하는 것입니다 :

for (var i = 0; i < separators.length; i++) { 
     var rg = new RegExp("\\" + separators[i], "g"); 
     x = x.replace(rg, " " + separators[i] + " "); 
} 
+0

'catch되지 않은 구문 에러 : 잘못된 정규 표현식 :/[+ -() */:?]/: 범위 문자 클래스의 순서가' – Okky

+0

@SreekeshOkky 그래, 즉'에 가입했다 '문제. 업데이트 된 버전을 확인하십시오. 그것은 잘 작동합니다. – VisioN

0

음이 여기

var separators = ['+', '-', '(', ')', '*', '/', ':', '?']; 
var x = "asdasdasdasd+adasdasdasd/asdasdasdasd*asdasdasd-asdasdasd:asdasdasdadasdasd?"; 
$(separators).each(function (index, element) { 
    x = x.replace(element, " " + element + " "); 
}); 

는 바이올린의 ... 매우 쉽게 보인다 배열을 jQuery 객체에 추가 한 다음 문자열 x의 분리 기호가 "간격"으로 바뀌면서 반복 처리합니다.

1

ca 시도해보십시오. 내가 오류를 받고 있어요 Demo

function fix(val) 
{ 
    var separators = ['+', '-', '(', ')', '*', '/', ':', '?']; 
    var result=""; 
    flag=true; 
    for(var i=0;i<val.length;i++) 
    { 
    flag=true; 
    for(var j=0;j<separators.length;j++) 
    { 
     if(val[i]==separators[j]) 
     { 
      result += " " + val[i] + " "; 
      flag=false;   
     } 
    } 
    if(flag) 
    { 
      result +=val[i]; 
    } 
} 

alert(result); 
}