2

次のようなリンクhrefを操作する必要があります。

/ agent / view / model:Member / ag_start_dateMonth:08 / ag_start_dateYear:2012 / ag_end_dateMonth:08 / ag_end_dateYear:2012

パーツをキャッチする必要があります。値を、ユーザーがフォームから選択した値にag_start_dateMonth置き換えます。08

つまり、文字列のどこにこのパターンがあるかを見つけ、次ag_start_dateMonthの直後:と前の値を見つけて/、フォーム選択オプションを使用してユーザーが指定した新しい値に置き換える必要があります。

これどうやってするの?アドバイスしてください、私は正規表現の構文についてかなり確信がありません:-/

4

3 に答える 3

4

置換の使用:

var s = '/agents/view/model:Member/ag_start_dateMonth:08/ag_start_dateYear:2012/ag_end_dateMonth:08/ag_end_dateYear:2012';
var selected = 10;
s = s.replace(/(ag_start_dateMonth:)([0-9]+)/, '$1' + selected);

この小さな便利な正規表現は、2つの一致するグループを維持します。1つは静的と呼ぶ可能性があり、もう1つは置換する日付を含みます。

于 2012-08-27T12:52:10.487 に答える
1

これでうまくいくはずです:

var s = '/agents/view/model:Member/ag_start_dateMonth:08/ag_start_dateYear:2012/' +
        'ag_end_dateMonth:08/ag_end_dateYear:2012';
var newText = 'foo';

alert(s.replace(/(ag_start_dateMonth:)08(\/)/, '$1' + newText + '$2'));
于 2012-08-27T12:55:19.363 に答える
0

この入力がページ上のフォームからのものである場合は、検索して置換する代わりに、いつでもhrefを「再構築」できます。ページ上でこれらの値を取得しているフォームがあるとします。jQueryを使用すると、これは次のように簡単になります。

jQuery('#id-of-form button').click( function () {
    var start_month = jQuery('#id-of-form select.start-month').val();
    var start_year = jQuery('#id-of-form select.start-year').val();
    var end_month = jQuery('#id-of-form select.end-month').val();
    var end_year = jQuery('#id-of-form select.end-year').val();
    jQuery(a#your-link-id).attr('href','/agents/view/model:Member/ag_start_dateMonth:' +
         start_month + '/ag_startdateYear:' + start_year + "/ag_end_dateMonth:" +
         end_month + '/ag_end_dateYear:' + end_year);
});
于 2012-08-27T13:02:59.493 に答える