我需要用字符串中的索引+ 1替换字符串中的每个元音。
(函数名称= vowel2index)
输出示例:
vowel2index('this is my string') == 'th3s 6s my str15ng'
我希望这个例子能说明我要做什么。我尝试使用如下所示的replace方法:
str.replace(/[aeiou]/gi, str.indexOf(/[aeiou]/gi);
但是这并不能解决问题。我也尝试了下面的代码,但是我不知道从IF语句去哪里(我还没有使用数组元音):
function vowel2index(str) {
let vowels = ["a", "e", "i", "o", "u"];
let arr = [];
for(i = 0; i < str.length; i++){
if (str[i] === /[aeiou]/gi) {
arr.push(str.replace(str[i], indexOf(str[i])+1));
}
任何帮助表示赞赏。仅供参考,这个问题来自代码战。
答案 0 :(得分:3)
您快到了。 .replace
函数accepts an offset
parameter包含当前匹配项的索引,因此您可以只使用replacer函数,并返回该偏移量加1。不需要元音数组,只需在模式中使用元音字符集:
function vowel2index(str) {
return str.replace(/[aeiou]/gi, (vowel, offset) => offset + 1);
}
console.log(vowel2index('this is my string')); // == 'th3s 6s my str15ng');
答案 1 :(得分:1)
几乎没有上面的@CertainPerformance答案那么干净,但蛮力解决方案是:
<?php
include 'config.php';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$DefaultId = 0;
$ImageData = $_POST['image_data'];
$ImageName = $_POST['image_tag'];
$ImagePath = "upload/$ImageName.jpg";
$ServerURL = "http://192.168.18.125/$ImagePath";
$InsertSQL = "INSERT INTO imageupload (image_path,image_name)
values('$ServerURL','$ImageName')";
if(mysqli_query($conn, $InsertSQL)) {
$decodedImage = base64_decode($ImageData);
file_put_contents($ImagePath,$decodedImage);
echo "Your Image Has Been Uploaded.";
}
mysqli_close($conn);
} else {
echo "Please Try Again";
}
?>
答案 2 :(得分:1)
您可以尝试这个伴侣。
const vowel2index = str => str.replace(/[aeiou]/gi, (_, offset) => offset+1)
console.log(vowel2index('this is my string'))
P.S。 :它将清除所有测试用例,因为我已经解决了该kata。 (很高兴见到来自Codewar的人♡)
答案 3 :(得分:0)
尝试一下:
function vowel2index(str) {
for(i = 0; i < str.length; i++){
if (str[i] === /[aeiou]/gi) {
str.replace(str[i], indexOf(str[i])+1);
}