2016-07-22 5 views
1

나는이 자바 스크립트에 다음 함수 :자바 스크립트 옵션 정규식 마이너스

function unString(String){  
    var justNumbers = /(?=.*\d)\d*(?:\.\d*)?/; 
    var result  = String.match(justNumbers); 
    result *= 1; 
    result = Math.round(result*100)/100; 
    return result; 
} 
그것의 의미는 추가 또는 substracted 또는 기타에 거는 수 있도록 가능한 모든 CSS 값에서 숫자를 추출하는 것입니다

값 : e. 지.

var newPadding = unString( $('#myID').css("padding-bottom") )*10 + "px"; 

내가 지금 "-3px"와 같은 값을 허용하는 선택적 빼기를 허용하도록 정규식을 필요 내 코드를 수정 데 변환 할에 "-3"(실제로 기능 할 수 없습니다 반환 "0").

[I에 유래 및 기타 포럼에 선택적 빼기 정규식 스레드의 톤이 알고 있지만, 내 정규식의 형태와 일치하지 않습니다 - 난에 있던 위의 하나를 만들기 위해, 정규식 많은 경험이없는 길고 강렬한 연구를 - 그래서 내가 언급, 내 정규식을 수정할 수 이러한]

[정규식 사전에 숫자, 선택적 소수점 및 선택적 빼기]

들으을 허용해야입니다

+0

http://stackoverflow.com/questions/12643009/regular-expression-for-floating-point-numbers. '/ -? [0-9] * \.? [0-9] +/g' –

+0

피드백을 사용 하시겠습니까? 그렇지 않으면 바이올린을 제공 할 수 있습니까? –

+0

@ WiktorStribiżew 예, 잘 작동합니다 (첫 번째 버전 사용). 자바 스크립트를 통해 CSS에서 양수/음수 값을 추출해야하는 경우에 매우 편리합니다. [Stackoverflow의 관점에서 "감사할만한 의견을 게시하지 마십시오"라는 식으로 생각했기 때문에 지금까지는 의견을 제시하지 않았습니다. 틀 렸으면 고쳐줘. 어쨌든 : 위대한 해결책 :)) – CMon

답변

0

당신 사용 가능

/-?[0-9]*\.?[0-9]+/g 

regex demo

설명 참조 :

  • -?를 - 0 개 이상의 숫자 - 옵션 하이픈
  • [0-9]* (둘 다 - 선택적 +에 맞게 [-+]?로 대체 할 수있다)
  • \.? - 선택적 도트
  • [0-9]+ - 1 자 이상.