2016-07-22 13 views
1

私はJavaScriptで以下の機能があります。それの意味は、それが他に加算または引き算または乗算することができるように、可能なすべてのCSSの値のうちの数を抽出することであるJavaScriptの正規表現オプションのマイナス

function unString(String){  
    var justNumbers = /(?=.*\d)\d*(?:\.\d*)?/; 
    var result  = String.match(justNumbers); 
    result *= 1; 
    result = Math.round(result*100)/100; 
    return result; 
} 

を値: e。 g。私は今、実際に機能ができません(に「-3」変換すること「-3px」と「0」を返すような値を許可するように、オプションのマイナスを許可する正規表現が必要になり、私のコードを変更した

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

)。

[私は、stackoverflowや他のフォーラムにオプションのマイナス正規表現スレッドがあることを知っていますが、私の正規表現の形式に一致しません - 私は正規表現の多くの経験を持っていない長いと強烈な研究を行う - と私はを参照して、私の正規表現を変更することができませんでしたこれら]

[正規表現は、事前に数字、オプションの小数点およびオプションのマイナス]

Thxを許可すべきである

+0

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

+0

フィードバックは?それができないなら、あなたはフィドルを提供できますか? –

+0

@WiktorStribiżewはい、うまくいきます(私は最初のバージョンを使用しています)。あなたがCSSからjavascript経由で正/負の値を抽出しなければならないのは本当に便利です。 [私はちょうど感謝するコメントを投稿しないなどのようなものだったと私は思ったので、今、私はちょっとフィードバックをしていない。私が間違っているなら私を訂正してください。いずれにしても:素晴らしい解決策:)) – CMon

答えて

0

ます使用可能

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

regex demo

説明参照してください:

  • -? - オプションのハイフン(あなたは、必要に応じて-+の両方に一致するように[-+]?でそれを置き換えること)
  • [0-9]* - ゼロ以上の数字を
  • \.? - オプションのドット
  • [0-9]+ - 1桁以上