2017-03-12 6 views
-5

は例えば、私はこれだ:
_T___
をそして私は1つのスペースでTのフォワードを移動し、このような次の文字を破壊したい:
__T__
それは可能ですか?可能であれば、どうやってJavascriptを使ってこれを行うことができますか?どうもありがとう!もちろん文字をJavascriptで1つのスペースで動かすには?

+2

そして、何 'T' の前にあったことをスペースに入りますか? – rasmeister

+0

私はこの '_T ___'を手に入れました。どこですか?いくつかのHTML要素、可変文字列ですか?いくつかのコードを表示できますか?それはどうやって動くのだろう?何か試しましたか? –

+0

もしそれが巨大な文字列でなければ、それを配列に分割してTを入れ替えることができます。配列上で.joinを使用します。しかし、専門家がもっと良い方法を知っているかもしれません。 – CaptainHere

答えて

0

を"T"が入る。

function positionT(index, length){ 
    var str = ''; 
    for(var i=0; i< length; i++){ 
    if(i===index){ 
     str+='T' 
    } else { 
     str+='_' 
    }} 
    return str; 
} 

positionT(1,5) // returns "_T___" 
positionT(2,5) // returns "__T__" 
0

var str = 'T____'; 
 

 
let i=5; 
 
while(i--){ 
 
    console.log(i, str=moveLetter(str)); 
 
} 
 

 

 
function moveLetter(str){ 
 
    return str.replace(/^(.*?)([^_])(.)(.*)$/,"$1$3$2$4") 
 
}

あなたは、新しい(ES6)の方法たい場合:あなたが望む位置指定した文字列を返す関数を作る

let str = '_T____', 
 
    len = str.length; 
 

 
function moveLetter(str) { 
 
    let arr = str.split(''), 
 
    pos = str.search(/[^_]/); 
 
    
 
    // swap array elements 
 
    [arr[pos], arr[pos+1]] = [arr[pos+1], arr[pos]]; 
 
    return arr.join(''); 
 
} 
 

 
while (len--) 
 
    console.log(len, str = moveLetter(str));

+0

私はあなたが 'while(-i)'を望んだと思います。 – rasmeister

+0

@rasmeisterイテレータは実際に文字列の長さには結びついていません。文字列の最後に何が起こるかを素早く実演するために何かが必要でした。ケース、何もない。 – vol7ron

0

var mystring = "1234T56"; 
 
console.log("Before:", mystring); 
 
var indexOfT = mystring.indexOf("T"); //Get where t is in the string 
 
mystring = mystring.split("T").join(''); //remove the t from the string 
 
mystring = mystring.split(''); // turn string into an array 
 
mystring[indexOfT] = 'T'; //add T back in one index down 
 
mystring = mystring.join(''); //return the array to a string 
 
console.log("After:", mystring);

+1

しかし、「後」では、「T」はインデックス4の同じ場所にあります。 – nnnnnn

1

// To "destroy" the next letter and insert a default "_" where the "T" was: 
 
console.log("abcdTefg".replace(/T.?/, "_T")) 
 
console.log("____T___".replace(/T.?/, "_T")) 
 
// The ? in the regex allows for the "T" being at the end: 
 
console.log("_______T".replace(/T.?/, "_T")) 
 

 
// To simply swap the "T" with the character that follows: 
 
console.log("abcdTefg".replace(/T(.)/, "$1T")) 
 
console.log("____T___".replace(/T(.)/, "$1T")) 
 
// No change if "T" is at the end, because there's no letter to swap with: 
 
console.log("abcdefgT".replace(/T(.)/, "$1T"))

関連する問題