2011-03-05 18 views
2

私はurl paramsのような文字列を持っています。私は保険値を取得したい場合保険は文字列で1回だけ来る。例えばJavaScript/jQueryの文字列解析

1.結果生成しなければならない文字列を次に示します。?

姓= ABC &姓を= XYZ &保険= 2 &保険= 3 &保険を= 4 &保険料= 5 &生年月日= 01-01-2000

2.次の文字列は、結果を生成する必要があります (理由は一つだけ保険)

姓= ABC &姓はXYZ &保険= 2 &生年月日= = 01-01? -2000

JavaScript/jQueryでどうすればいいですか

すべての回答に感謝します。きちんとした解決策 - のおかげ

+1

[こちら](http://stackoverflow.com/questions/901115/get-querionsring-values-with-jquery)をお探しですか? – paragy

+0

@alliswell:ありがとう。私はあなたが言及した質問の一番上の答えの機能を使用しました。それは最初の**保険**の値を返すことなしに返されます。 **保険**の文字列で。私は、**保険**の値が文字列に1つだけ**ある場合のみ**保険**の価値を返すしたいと思います。だから、私は文字列の保険のnoのための小切手を追加する必要があります。 – Awan

+0

あなたは歓迎されており、言及したようにregexを使うか、単純な条件付きチェックが機能します。 – paragy

答えて

4

は、ここでは、@meouwため

function checkInsurance(queryString) { 
    // a regular exression to find your result 
    var rxp = /insurance=(\d+)/gi 
    if(!queryString.match(rxp) || queryString.match(rxp).length !== 1) { 
     // if there are no matches or more than one match return false 
     return false; 
    } 
    // return the required number 
    return rxp.exec(queryString)[1]; 
} 
+0

ありがとうございます。それは働いている。 – Awan

1

+1をやりたいだろう機能です!

代わりに、string.splitを使用することもできます。次の実装では、検索するパラメータとその値(つまり任意の文字列)について柔軟に対応しています。

function getUniqueParam (query, paramName) { 
    var i, row, result = {}; 

    query = query.substring(1); 
    //split query into key=values 
    query = query.split('&'); 


    for (i = 0; i < query.length; i++) { 
     row = query[i].split('='); 

     // if duplicate then set value to false; 
     if(result[row[0]]) { 
      result[row[0]] = false; 
     } 
     else { 
      result[row[0]] = row[1]; 
     } 

    }; 

    // return the requested param value 
    return result[paramName]; 
} 


// Testing: 

var a = '?LastName=abc&FirstName=xyz&insurance=2&insurance=3&insurance=4&insurance=5&BirthDate=01-01-2000'; 
var b = '?LastName=abc&FirstName=xyz&insurance=2&BirthDate=01-01-2000'; 

console.log(getUniqueParam(a, 'insurance')); 
console.log(getUniqueParam(b, 'insurance')); 
+0

regex対string.splitのパフォーマンスについての議論があります[ここ](http://stackoverflow.com/questions/966697/performance-question-string-split-and-then-walk-on-the-array-or -regexp) – johnhunter

+0

あなたの努力のために+1。ありがとう – Awan