jQuery多次替换

时间:2014-10-23 09:56:12

标签: javascript jquery

我试图从我的字符串中删除欧元符号。

由于字符串看起来像€33.0000 - €37.5000,我首先在我试图删除欧元符号后爆炸。

var string = jQuery('#amount').val();
var arr = string.split(' - ');

if(arr[0] == arr[1]){
    jQuery(this).find('.last').css("display", "none");
}else{
    for(var i=0; i< arr.length; i++){
        arr[i].replace('€','');
        console.log(arr[i]);
    }
}

当我在我的网站上试用它时,当我得到这样的字符串时,欧元符号都没有被删除

var string = jQuery('#amount').val().replace("€", "");

仅删除第一个欧元符号

5 个答案:

答案 0 :(得分:1)

.replace()仅使用字符串替换第一个匹配项,并使用RegExp替换所有匹配项:

jQuery('#amount').val().replace(/€/g, "")

答案 1 :(得分:0)

尝试使用带有全局替换标志的正则表达式:

"€33.0000 - €37.5000".replace(/€/g,"")

答案 2 :(得分:0)

首先摆脱€(全球),而不是将字符串拆分为数组部分

var noeur = str.replace(/€/g, '');
var parts = noeur.split(" - ");

答案 3 :(得分:0)

第一次尝试的问题是replace() method返回一个新字符串。它不会改变它执行的那个。

所以它应该是arr[i] = arr[i].replace('€','');

默认情况下,replace方法仅替换第一次出现。

您可以使用正则表达式支持并传递全局修饰符g,以便它适用于整个字符串

var string = Query('#amount').val().replace(/€/g, "");

答案 4 :(得分:0)

var parts = /^€([0-9.]+) - €([0-9.]+)$/.exec(jQuery('#amount').val()), val1, val2;
if (parts) {
    val1 = parts[1];
    val2 = parts[2];
} else {
    // there is an error in your string
}

你也可以在这里和那里容忍空格:/^\s*€\s*([0-9.]+)\s*-\s*€\s*([0-9.]+)\s*$/