2017-11-29 23 views
-2

バニラJavaScriptを使用する特定の文字を単語/文字列の最後に移動するにはどうすればよいですか?特別なチャクラは '!' 、 '?' 、 '。'例えば文字を単語の最後に移動しますか?

、私が持っている:agsbay:する必要がありますags.bay

を。ここで

は私の完全なコードです:

var consonantArray = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", 
"p", "q", "r", "s", "t", "v", "w", "x", "z"]; 
var vowelArray = ["a", "e", "i", "o", "u", "y"]; 
var enteredText = 'never forget to empty your vacuum bags. please'; 
var wordArray = enteredText.split(' '); 
var finalText = []; 

for (i = 0; i < wordArray.length; i++) { 
//if the first letter of the array is a vowel then change 
if (consonantArray.indexOf(wordArray[i].charAt(0)) == -1) { 
    finalText[i] = wordArray[i] + "yay"; 
} else if (vowelArray.indexOf(wordArray[i].charAt(0)) == -1) { 
    if (vowelArray.indexOf(wordArray[i].charAt(1)) == -1) { 
     finalText[i] = wordArray[i].substring(2) + wordArray[i].charAt(0) + wordArray[i].charAt(1) + "ay" 
    } else { 
     finalText[i] = wordArray[i].substring(1) + wordArray[i].charAt(0) + "ay"; 
    } 
} 
} 
console.log(finalText.join(' ')); 
+3

あなたがまだ試みを試みたことがありますか?あなたのコードと研究を示してください。 –

+0

私は私の投稿にあまりにもすぐに入力をヒットし、追加するチャンスがある前に投稿しました。私は自分のコードを追加しました。私は正規表現と部分文字列を使いこなしていますが、決してそれを完全に働かせることはありません。 – RDumais

答えて

2

string#matchを使用すると、正規表現を使用してすべての特殊文字!,?および.を配列で取得できます。またstring#replaceこれらの特殊文字は''であり、一致した文字を含む特殊文字なしで文字列を結合します。

var matched = 'a!g?s.bay'.match(/[\!\?\.]/g); 
 
var str = 'ags.bay'.replace(/[\!\?\.]/g, ''); 
 
console.log(str+matched.join(''));

1
function convert(string){ 
    str1 = "", str2 = ""; 
    for(i=0;i<string.length;++i){ 
     if(string[i] === '!' ||string[i] === '?' ||string[i] === '.') 
      str1 += string[i]; 
     else 
      str2 += string[i]; 
    } 
return str2+str1; 
} 

あなたはそれが非常に複雑作っている理由を私は理解していません!

関連する問題