Javascript 从字符串中删除字符的所有实例
我正试图从jQuery/Javascript中的字符串中删除给定字符集的所有实例。我正在使用该函数,但是这似乎只删除角色的一个实例,而不是全部实例Javascript 从字符串中删除字符的所有实例,javascript,jquery,string,replace,Javascript,Jquery,String,Replace,我正试图从jQuery/Javascript中的字符串中删除给定字符集的所有实例。我正在使用该函数,但是这似乎只删除角色的一个实例,而不是全部实例 例如考虑字符串: 1,500,00.00.$djdjd£10€10 var validated = function(min,max) { var v = parseInt('1,500,00.00.$djdjd£10€10' .replac
例如考虑字符串:
1,500,00.00.$djdjd£10€10
var validated = function(min,max) {
var v = parseInt('1,500,00.00.$djdjd£10€10'
.replace(/[^\d]/g,''), 10);
// ^ replace non numbers
// v now is 150000001010
return v >= min && v <==max;
}(1000, 200000); //=> false
我回来了:
1500,0000.djdjd1010
如您所见,它只删除每个角色的一个实例英镑、
$和€
都可以,因为字符串中只有一个
以下是我到目前为止的情况:
function validatePriceRange(value, min, max) {
var replacements = ["£", "$", "€", ",", "."];
$.each(replacements, function (index, item) {
value = value.replace(item, "");
});
var value = parseInt(value, 10);
return value >= min && value <= max;
}
函数validatePriceRange(值、最小值、最大值){
风险值替换=[“£”、“$”、“€”、“,”、“,”;
$。每个(替换、功能(索引、项目){
值=值。替换(项目“”);
});
var值=parseInt(值,10);
返回值>=min&&value使用带有全局标志的正则表达式,它将搜索和替换所有实例
var replacements = ["£", "\\$", "€", ",", "\\."];
$.each(replacements, function (index, item) {
value = value.replace(new RegExp(item, "g"), '');
});
演示:使用带有全局标志的正则表达式,它将搜索并替换所有实例
var replacements = ["£", "\\$", "€", ",", "\\."];
$.each(replacements, function (index, item) {
value = value.replace(new RegExp(item, "g"), '');
});
演示:使用字符串作为第一个参数调用,只进行一次替换,而使用带有标志g
的正则表达式替换所有出现的情况
使用正则表达式,还可以避免在数组上循环,并一次性完成:
value = value.replace(/£|\$|€|,|\./g,'');
使用字符串作为第一个参数调用时,只进行一次替换,而使用带有标志g
的正则表达式替换所有出现的情况
使用正则表达式,还可以避免在数组上循环,并一次性完成:
value = value.replace(/£|\$|€|,|\./g,'');
您只能在替换数组中循环一次,每次替换特定角色时都要进行替换。
但是,replace只替换给定字符串的第一次出现
有关“全部替换”方法,请参见
您只能在替换数组中循环一次,每次替换特定角色时都要进行替换。
但是,replace只替换给定字符串的第一次出现
有关“全部替换”方法,请参见
我不认为你需要一个函数:
var validated = parseInt('1,500,00.00.$djdjd£10€10'.replace(/[£$€,.]/g,''), 10);
//=> 15000000
// or if you want the validated directly
var validated = function(min,max) {
var v = parseInt('1,500,00.00.$djdjd£10€10'
.replace(/[£$€,.]/g,''), 10);
return v >= min && v <==max;
}(1000, 200000); //=> false
var validated=parseInt('1500,00.00.$djdjd£10€10'。替换(/[£€,.]/g',),10);
//=> 15000000
//或者如果您希望直接验证
var验证=功能(最小值、最大值){
var v=parseInt('1500,00.00.$DJD£10欧元10'
.替换(/[£€,.]/g,”),10);
返回v>=min&&v false
如果要在字符串中包含所有数字,则正则表达式应不同:
1,500,00.00.$djdjd£10€10
var validated = function(min,max) {
var v = parseInt('1,500,00.00.$djdjd£10€10'
.replace(/[^\d]/g,''), 10);
// ^ replace non numbers
// v now is 150000001010
return v >= min && v <==max;
}(1000, 200000); //=> false
var validated=函数(最小值、最大值){
var v=parseInt('1500,00.00.$DJD£10欧元10'
.替换(/[^\d]/g',),10);
//^替换非数字
//v现在是15000001010
返回v>=min&&v false
我认为您不需要函数:
var validated = parseInt('1,500,00.00.$djdjd£10€10'.replace(/[£$€,.]/g,''), 10);
//=> 15000000
// or if you want the validated directly
var validated = function(min,max) {
var v = parseInt('1,500,00.00.$djdjd£10€10'
.replace(/[£$€,.]/g,''), 10);
return v >= min && v <==max;
}(1000, 200000); //=> false
var validated=parseInt('1500,00.00.$djdjd£10€10'。替换(/[£€,.]/g',),10);
//=> 15000000
//或者如果您希望直接验证
var验证=功能(最小值、最大值){
var v=parseInt('1500,00.00.$DJD£10欧元10'
.替换(/[£€,.]/g,”),10);
返回v>=min&&v false
如果要在字符串中包含所有数字,则正则表达式应不同:
1,500,00.00.$djdjd£10€10
var validated = function(min,max) {
var v = parseInt('1,500,00.00.$djdjd£10€10'
.replace(/[^\d]/g,''), 10);
// ^ replace non numbers
// v now is 150000001010
return v >= min && v <==max;
}(1000, 200000); //=> false
var validated=函数(最小值、最大值){
var v=parseInt('1500,00.00.$DJD£10欧元10'
.替换(/[^\d]/g',),10);
//^替换非数字
//v现在是15000001010
返回v>=min&&v false
如前所述,您可以使用以下正则表达式将所有非字符和空格替换为空
var value = "1,500,00.00.$djdjd£10€10"
value = value.replace(/[^\w\s]/gi, '')
如前所述,您可以使用以下正则表达式将所有非字符和空格替换为空
var value = "1,500,00.00.$djdjd£10€10"
value = value.replace(/[^\w\s]/gi, '')
完美-感谢您对替换工作原理的解释。我无知地认为它的工作原理与replace()
在C.
中的工作原理类似。完美-感谢您对替换工作原理的解释。我无知地认为它的工作原理与replace()类似在 C< > YAY中,指向现有的解决方案ROCK。我可以考虑通过将Stry.yAy的原型替换为现有的解决方案ROCKE来扩展该解决方案。我可以考虑通过使RetryString原型为字符串来扩展该解决方案。