因此,在我的网页上,我有来自用户字符串的输入
rgb(0, 128, 192)
提交时我想从这个字符串中收集数字并安慰它。
console.log(first_number);
console.log(second_number);
console.log(third_number);
我该怎么做?
答案 0 :(得分:2)
使用简单的正则表达式/\d+/g
来匹配数字:
var string = "rgb(0, 128, 192)";
var numbers = string.match(/\d+/g); // get the numbers
if(numbers && numbers.length === 3) { // if there is numbers in the string, and there is exactly 3
console.log(numbers); // log them
}
答案 1 :(得分:1)
从字符串中删除rgb(
和)
,将其拆分为,
,然后将这些部分解析为整数:
function getRGBFromString(str){
var parts = str.slice(4,-1).split(',')
return [parseInt(parts[0]),parseInt(parts[1]),parseInt(parts[2])]
}
答案 2 :(得分:0)
您可以像这样使用正则表达式:
function getRGBNumbers(rgbString) {
var regex = /rgb\(([0-9]{1,3})\,[ ]?([0-9]{1,3})\,[ ]?([0-9]{1,3})\)/;
var match = regex.exec(rgbString);
// Invalid rgb string
if (match === null) {
return null;
}
// Remove first element of the array that contains all numbers
match.shift();
return match;
}
var rgbNumber = getRGBNumbers("rgb(0, 128, 192)");
console.log(rgbNumber[0]); // 0
console.log(rgbNumber[1]); // 128
console.log(rgbNumber[2]); // 192
var rgbNumber2 = getRGBNumbers("rgb(5,100,255)");
console.log(rgbNumber2[0]); // 5
console.log(rgbNumber2[1]); // 100
console.log(rgbNumber2[2]); // 255
var rgbNumber3 = getRGBNumbers("rgb(5,255)");
if (rgbNumber3 === null) {
console.log("Invalid input string");
}