キャプチャ

by yshrkn

JavaScript

/**
 * 課題1
 *「行頭の」タブを除去するメソッドStringUtils.unindent(); を実装してください。
 */
 
/**
 * 課題2
 *「行末の」改行を除去するメソッドStringUtils.toSingleLine(); を実装してください。
 */
 
// ES2016/ES6のテンプレート文字列を使ってます。
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings
var html = `
<main>
	<h1 id="heading">Headig</h1>
	<ul class='list'>
		<li class="list__item	list__item--hoge">Hoge</li>
		<li   class="list__item list__item--Foo">Foo</li>
	</ul>
</main>
`;

StringUtils = {
	// 行頭のインデントを削除
 unindent: function(str) {
 	return str.replace(/\t+/g, '');
 },
 
 toSingleLine: function(str) {
 	return str.replace(/\n/g, '');
 }
};

// 1. 行頭のタブを取り除き、テキストを出力します。
console.log("行頭のタブを除去");
console.log(StringUtils.unindent(html));
console.log("-------------------------------");

/** 出力

<h1 id="heading">Headig</h1>
<ul class='list'>
<li class="list__item	list__item--hoge">Hoge</li>
<li   class="list__item list__item--Foo">Foo</li>
</ul>
*/

// 2. 行頭のタブと行末の改行を取り除き、テキストを出力します。
console.log("行末の改行を除去");
console.log(StringUtils.toSingleLine(html));
console.log("-------------------------------");

/** 出力
<main>	<h1 id="heading">Headig</h1>	<ul class='list'>		<li class="list__item	list__item--hoge">Hoge</li>		<li   class="list__item list__item--Foo">Foo</li>	</ul></main>
*/


// 3. 行頭のタブと行末の改行の両方を取り除き、テキスト出力をします。
console.log("行頭のタブと行末の改行を除去");
console.log(StringUtils.toSingleLine(StringUtils.unindent(html)));
console.log("-------------------------------");

/** 出力
<main><h1 id="heading">Headig</h1><ul class='list'><li class="list__item	list__item--hoge">Hoge</li><li   class="list__item list__item--Foo">Foo</li></ul></main>
*/