开发者

Jquery Plugin: ba-replacetext, Javascript working but needing help.. RegExp?

I am trying to remove text from a dropdown menu using a Jquery plugin called ba-replacetext. It's ALMOST working, but could use a bit of tweeking. Please help me out as I am still learning Jquery / JS programming. Thanks! (trying to remove ONLY the following phras开发者_Go百科es: "less $2,800.00" and "less $200.00")

HTML Source:

<select id="ct100_mainContent_productOption_1000193123" name="optionId">
<option value="">- Select Deposit or Full Tuition -</option>
<option value="1000918521" selected="selected">Full Tuition (One Time Payment of $3,000)</option><option value="1000918519">Deposit Only ($200 Initial Payment) - less $2,800.00</option><option value="1000918520">Remaining Balance ($2,800 Following Deposit) - less $200.00</option></select>

Jquery Function:

    $(function(){
  $('#ct100_mainContent_productOption_1000193123').ready(function(){
  $('#ct100_mainContent_productOption_1000193123 *').replaceText(/less \$(2,8|2)00\.00/gi, '');
  $('#ct100_mainContent_productOption_1000193123 *').replaceText( /-+/gi, '' );
 });
});

Result of this code is that only the word less is removed not the entire phrase less $2,800.00. I can't get it to work, perhaps because I am using the wrong Regexp? Thoughts? Many thanks!


If you want exactly "less $2,800.00" and "less $200.00" then you would need something along the lines of:

replaceText(/less \$(2,8|2)00\.00/gi, '')

Here the (2,80|2) will match either of the two variants above, but nothing else. If instead you want to match any for of money statement you would need:

replaceText(/less \$[0-9,.]+/gi, '')

Also, you will want to account for the "-" before your "less" since that will be dangling after replacement. Of course you will need to experiment with your exact needs for which I would recommend searching with terms "javascript regex" and find a reference that works best for you. Mine is w3schools.


u can use on all 'less' text globally ..

$('#ct100_mainContent_productOption_1000193123 option').each(function () {
    var html = $(this).html();
    var i = html.indexOf('less');
    if (i > -1) {                    
        $(this).html(html.substring(0, i));
    }
});


Yup, your regex doesn't say anything about the dollar amount. \bless\b means "match a word boundary, then the word 'less', then another word boundary". You want something like \bless \$[0-9,.]+. You can test your regular expressions at sites like this, and it sounds like you might want to read an intro to regexes generally.

Small disclaimer: I don't know anything about ba-replacetext.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜