2016-05-04 3 views
0

デリミタの分割機能が1つあります値の前にデリミタのみを取得する方法

このコードを適用すると、すべての値が表示されます。私はデリミタの前に(-5、-7,89)のような値しか必要としません。どうすれば入手できますか?

function solve() { 
 
    str1 = $('#equ').val(); 
 
    var eql = str1.split(/x/g); 
 

 
    $('#test').html(eql); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" placeholder="Enter equation" value="-5x-7x-56+89x=108" class="equ" id="equ"> 
 
<input type="submit" value="solve" class="solve" id="solve" onclick="solve()"> 
 
<p id="test"></p>

+0

また、タイプをサブミットから – mplungjan

答えて

1

私は、私は完全にあなたの質問を理解していないけど、あなたはおそらくオプションの-ためのすべてのマッチプラスx前に発生した数を取得したいです。それは次のようになります。

var matches = str1.match(/-?\d+(?=x)/g); 
console.log(matches); // You will get an array with [-5, -7, 89] 

// For example, we can now output the values 
$('#test').text(matches.join(", ")); 

短い説明:特定のregular expressionのマッチの配列を返す.matchを。 -?はオプションのマイナスに一致し、\d+は1桁以上の数字と一致し、(?=x)は次の文字が一致するかどうかを確認するためにxであるかどうかをチェックします。最後に、正規表現の末尾にあるg修飾子をグローバル正規表現にして、.matchがこの正規表現に一致する文字列のすべての部分を返すようにします(ある一致とすべてのサブコマンドがあれば返します)。

+1

に変更します。私の回答があります。ありがとうございます。あなたの説明にも感謝します。 – prasanth

0

EQL [0]区切り文字の前のあなたの価値を提供します。

$('#test').html(eql[0]); 
関連する問題