只保留字符串中的数字,十进制数字除外
keep only numbers from string except for decimal numbers
我只想获取字符串中 MyFruit 的百分比。
但在使用我的变量 CleanString 之前,我只想保留字符串中的数字,小数点分隔符(“.”或“,”)除外。
我不知道为什么它不能很好地工作。例如,如果没有 "banana"...
如果有带百分比的香蕉,我想得到结果“1,2”。
var MyFruitSalad = "orange* 1,5%, bananaX, banana,BaNana_1,2%, apple_5 %, pineapple:3.5%";
var MyFruit = "banana";
var PercentMyFruit = MyFruitSalad.slice(MyFruitSalad.indexOf(MyFruit) + MyFruit.length).split('%').shift();
var CleanString = PercentMyFruit.replace(/[^0-9$.,]/g, '');
console.log(CleanString);
您可以在小写字符串中搜索小写单词并获取索引直到百分号。然后替换不需要的字符。
String#indexOf
区分大小写。
function getValue(string, word) {
var index = string.toLowerCase().indexOf(word.toLowerCase()),
part = string.slice(index + word.length, string.indexOf('%', index));
return index === -1
? 'no ' + word + ' found!' // or throw an exception
: part.replace(/[^0-9$.,]/g, '');
}
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "banana"));
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "foo"));
我只想获取字符串中 MyFruit 的百分比。 但在使用我的变量 CleanString 之前,我只想保留字符串中的数字,小数点分隔符(“.”或“,”)除外。 我不知道为什么它不能很好地工作。例如,如果没有 "banana"... 如果有带百分比的香蕉,我想得到结果“1,2”。
var MyFruitSalad = "orange* 1,5%, bananaX, banana,BaNana_1,2%, apple_5 %, pineapple:3.5%";
var MyFruit = "banana";
var PercentMyFruit = MyFruitSalad.slice(MyFruitSalad.indexOf(MyFruit) + MyFruit.length).split('%').shift();
var CleanString = PercentMyFruit.replace(/[^0-9$.,]/g, '');
console.log(CleanString);
您可以在小写字符串中搜索小写单词并获取索引直到百分号。然后替换不需要的字符。
String#indexOf
区分大小写。
function getValue(string, word) {
var index = string.toLowerCase().indexOf(word.toLowerCase()),
part = string.slice(index + word.length, string.indexOf('%', index));
return index === -1
? 'no ' + word + ' found!' // or throw an exception
: part.replace(/[^0-9$.,]/g, '');
}
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "banana"));
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "foo"));