使用js,需要将字符串“k1-k10”转换为“k1,k2,k3,k4,k5,k6,k7,k8,k9,k10”,转换前的2个字母需要保持一致,字母只能是k或g,如转换前的字符串为“g1-g5”,则需要转换为“g1,g2,g3,g4,g5”
时间: 2024-03-17 21:41:47 浏览: 122
JS之间的字符转换
可以使用正则表达式和字符串操作来实现该功能,具体步骤如下:
1. 使用正则表达式匹配出字符串中的数字部分,同时获取第一个字符,即"k"或"g"。
2. 将获取到的数字部分转换为数字数组。
3. 根据数字数组的长度,使用循环遍历数字数组,生成对应的字符串。
4. 将生成的字符串以逗号连接起来。
以下是代码示例:
```javascript
function convertStr(str) {
const reg = /^([kg])(\d+)-(\d+)$/;
const match = reg.exec(str);
if (match) {
const prefix = match[1];
const start = parseInt(match[2]);
const end = parseInt(match[3]);
const nums = Array.from({ length: end - start + 1 }, (_, i) => i + start);
const result = nums.map(num => `${prefix}${num}`).join(',');
return result;
} else {
throw new Error('Invalid input string!');
}
}
// 示例
console.log(convertStr('k1-k10')); // "k1,k2,k3,k4,k5,k6,k7,k8,k9,k10"
console.log(convertStr('g1-g5')); // "g1,g2,g3,g4,g5"
```
在上面的代码中,使用了正则表达式`/^([kg])(\d+)-(\d+)$/`来匹配字符串。其中:
- `^`表示字符串的开头;
- `([kg])`表示匹配第一个字符,即"k"或"g";
- `(\d+)`表示匹配数字部分,且数字部分必须至少有1位;
- `-`表示连字符;
- `(\d+)`表示匹配数字部分,且数字部分必须至少有1位;
- `$`表示字符串的结尾。
阅读全文