質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3484閲覧

JavaScriptの関数が動かない

Junichi.

総合スコア6

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/02/15 07:09

HTML5、CSS3、JavaScriptで作成するアプリケーションの教材で勉強していますが、作成した関数が正常に動いてくれない。

作成した関数は以下のとおりです。
ここから↓
var h = function(str) {
// (1) h関数の実処理を定義
if (str !== null) {
// (3) 引数strが空でない場合の処理
str = str.toString();
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
} else {
// (4) 引数strが空である場合の処理
str = '';
}
return str;
};

var printf = function(format) {
// (2) printf関数の実処理を定義
for (var i = 1; i < arguments.length; i++) {
var pattern = new RegExp('¥¥{' + (i - 1) + '¥¥}', 'g');
format = format.replace(pattern, h(arguments[i]));
}
return format;
};
ここまで↑

webインスペクタのコンソールで、
printf('今、{0}は{1}歳です', 'アイウ', 4) と入力すると、
"今、アイウは4歳です" と返したいのです。

しかし、
"今、{0}は{1}歳です"と返ってきます。

何か問題かわからない状況です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

var pattern = new RegExp('¥¥{' + (i - 1) + '¥¥}', 'g');

ここで使用されている円マークがエスケープシーケンスのバックスラッシュ(U+005C : \)ではなく円マーク(U+00A5 : ¥)そのものになっているせいですね。
円マークとバックスラッシュ

投稿2015/02/15 07:36

sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Junichi.

2015/02/16 13:15

"\(バックスラッシュ)"に変更したら、バッチリ上手くいきました。 バックスラッシュを入力するには、流石に自分で調べれました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問