2017-01-17 26 views
0

複数の番号をカンマで区切っています。私はカンマで区切り、数字の前と後ろにテキストを追加する必要があります。JsまたはJqueryの番号の前と後に番号を付けてテキストを追加する方法

Input:- x = "2254,1234"; 
Output:- x = abc2254def or abc1234def 

上記の出力が必要です。あなただけのループを通過し、すべての要素にテキストの前後に追加し、その後split()機能を使って、あなたの入力を分割する必要が私に

+1

あなたの入力は数字の配列ですか? –

+1

'.map()'を使用して各数字の周りに文字を追加し、 '.join()'を使用してそれらの間に 'または'を結合します。 – Barmar

答えて

1

。次に、+を使用して文字列を連結し、trimを入力して、入力に予期しないスペースがないことを確認します。最後にjoinという文字列を返します。

機能にサニティチェックを追加することを忘れないでください。typeofで指定されたnumberStringをチェックし、文字列でない場合は短絡します。

console.log(convertNumbers('abc', 'def', ' or ', "1,2,3,4,5, 6,7 ,8"));

あなたは、あなたのHTMLに基づいて、あなたのinput.valueと4番目のパラメータを置き換えることができます。

/* 
* Helper function for logging an array of numbers, prefixed and suffixed with supplied string 
* @param {String} prefix The string to append to the beginning of the output 
* @param {String} suffix The string to append to the end of the output 
* @param {String} divider The string that separates each output value 
* @param {String} numberString The string of numbers, separated with commas to iterate through 
* @returns {String} The concatenated string 
*/ 
var convertNumbers = function(prefix, suffix, divider, numberString){ 
    // short circuit if numberString is NOT a string 
    if(typeof numberString !== 'string') return; 
    return numberString.split(',').map(function(number){ 
     return '' + prefix + number.trim() + suffix; 
    }).join(divider); 
} 

この関数は、文字列を返すので、のようなものを使用して呼び出されます。あなたは、単にsplit正規表現とjoin

var convertNumbers = function(prefix, suffix, divider, numberString){ 
    // short circuit if numberString is NOT a string 
    if(typeof numberString !== 'string') return; 
    return '' + prefix + (numberString.split(/[\s,]+/).join(suffix + divider + prefix)) + suffix; 
} 
+0

私は入力フィールドを持っています。だからどうすればいいですか? numberArray = test.value; が動作していません – Crock

+0

@Crock、updated – haxxxton

+0

「または」最初の数値の後に追加する方法? – Crock

1
var y = "2254,1234";  
    var x = y.split(','); 
    for(var i=0;i<x.length;i++){ 
    var pre = 'abc'; 
    var post = 'def'; 
    var result = pre+x[i]+post; 
    console.log(result); 
    } 
+0

配列ではありません。数字だけ。何らかの機能の後に動的に挿入される – Crock

1

を助けてください。あなたは、分割文字列で見つかった項目のそれぞれに機能を実行するためにmapそして、あなたの入力を分離するためにsplitを使用することができます

x = "2254,1234"; 
 
var y = x.split(","); 
 
$.each(y,function(i,e){ 
 
    if(y.length == 1) 
 
    { 
 
     var str = "abc"+e+"xyz"; 
 
     alert(str) 
 
    }else{ 
 
     var str = "abc"+e+"efg"; 
 
     alert(str) 
 
     } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

番号の最初のセットの後に "または"を追加する方法? – Crock

+0

abc2254efgまたはabc1234efg入力が3つの数値の場合abc2254efgまたはabc1234efgまたはabc **** efg? – Crock

+0

@Crock数字が単一のセットである場合、abc2254def else abc2254efg私が間違っていれば私を修正しますか? – Bharat

1

たぶん役立つを使用でき、

NOTE

は、上記ものの、より読みやすいソリューションです(これは明らかにゴルフではない)、これを試してみてください。

//$InputValue = "2254,1234,3345"; 
 
$InputValue = "2254,3345"; 
 

 
$Res = WrapString($InputValue); 
 
console.log($Res); 
 

 

 
function WrapString($inputString){ $result = []; 
 
    $inputString = $inputString.split(","); 
 
    
 
    for($i=0;$i<$inputString.length;$i++){          
 
    $result.push(GenrateRandString(3)+$inputString[$i]+GenrateRandString(3)); 
 
    } 
 
    return $result; 
 
} 
 

 
function GenrateRandString($length) { 
 
    $text = ""; 
 
    $possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
 
    for(var i = 0; i < $length; i++) { 
 
     $text += $possible.charAt(Math.floor(Math.random() * $possible.length)); 
 
    } 
 
    return $text; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

関連する問題