jiichan.com

PROGRAMMING

文字列をセパレータ文字で分割し配列で返す関数

PHPなどでは、文字列をセパレータ文字で分割しそれを配列で返してくれる関数が準備されています。 それに似たものがjavascriptにも無いか探してみましたが、探せなかったので自作してみました。
たまに使うことがあるので、すぐ探せるようにこのページを作りました。

文字列をセパレータ文字で分割し配列で返す関数

特にこれといったものはありません。ループで切り取っているだけです。
1番目の引数が対象の文字列、2番目がセパレータの文字列です。


function strSlice(str, separator){
	var tmpStr = str;
	var ary = new Array();
	var ichi = 0;
	while(tmpStr.length > 0){
		ichi = tmpStr.indexOf(separator);
		if(ichi < 0){
			ary.push(tmpStr);
			tmpStr = "";
		}else{
			ary.push(tmpStr.substr(0, ichi));
			tmpStr = tmpStr.substr(ichi + separator.length);
		}
	}
	return ary;
}

下がHTMLです。strSlice関数を含んだjavascriptを読み込んでいます。


<!DOCTYPE html>
<html>
	<head>
		<title></title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="./sample.css">
		<script src="jquery.min.js"></script>
		<script src="strslice.js"></script>
	</head>
	<body>
		<label>整形前文字列
			<input type="text" name="strA"
				value="あいうえお<>かきくけこ<>さしすせそ<>たちつてと<>なにぬねの">
		</label><br>
		<label>区切り文字列
			<input type="text" name="strB" value="<>">
		</label><br>
		<p><input type="button" value="文字列整形"></p>
		<p>↓整形後文字列</p>
		<p id="result"></p>
	</body>
</html>

下が関数を含んだjavascriptです。


$(function(){
	$("input[type=button]").click(function(){
		var strA = $("input[name='strA']").val();
		var strB = $("input[name='strB']").val();
		var aryStr = strSlice(strA, strB);
		var result = "<p>";
		for(var i = 0; i < aryStr.length; i++){
			result += aryStr[i] + "<br>";
		}
		result += "</p>";
		$("#result").html(result);
	});
});

function strSlice(str, separator){
	var tmpStr = str;
	var ary = new Array();
	var ichi = 0;
	while(tmpStr.length > 0){
		ichi = tmpStr.indexOf(separator);
		if(ichi < 0){
			ary.push(tmpStr);
			tmpStr = "";
		}else{
			ary.push(tmpStr.substr(0, ichi));
			tmpStr = tmpStr.substr(ichi + separator.length);
		}
	}
	return ary;
}

使用例です。



↓整形後文字列

あまり単純なので参考になるかどうか。