Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(string): 文字列の置換について #205

Merged
merged 6 commits into from
Apr 12, 2017
Merged

feat(string): 文字列の置換について #205

merged 6 commits into from
Apr 12, 2017

Conversation

azu
Copy link
Collaborator

@azu azu commented Mar 20, 2017

#121 depended on #204

文字列の置換について

  • String#replace
  • deleteは使えない
  • String#replaceと正規表現
  • String#replaceとコールバック

Copy link
Collaborator Author

@azu azu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ひとまず書いた

"use strict";
var string = "文字列";
// 文字列の0番目を削除を試みる
// strict modeでは削除できないプロパティを削除しようとするとエラーが発生
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このコメント 文章でも書いてるしいらなさそう

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

そもそもdeleteのコード例はどっちでもいいかな

```

代わりに、`String#replace`メソッドなどで削除したい文字を取り除いた新しい文字列を返すことで削除を表現します。
`replace`メソッドは、**文字列**から第一引数に一致する文字列を、第二引数の文字列へ置換します。
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

置換対象の文字列
検索文字列/正規表現
置換結果の文字列

これの言い回しを統一したい。
matchあたりから適当になってる。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replaceメソッドは、文字列から第一引数に一致する文字列を、第二引数の文字列へ置換します。

replaceメソッドは、置換します、文字列から第一引数に一致する文字列を、第二引数の文字列へ
**文字列**から第一引数に一致する文字列を が目的語として長過ぎる気がするけど、いい表現はぱっと浮かばない


```js
文字列.replace("検索文字列", "置換文字列");
文字列.replace(/pattern/, "置換文字列");
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

正規表現の構文的なサンプルって /pattern/ 以外でいいのを出したほうがいいかなー?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/正規表現/ ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#21 (comment)
パターンにする

文字列.replace(/pattern/, "置換文字列");
```

次のように、`replace`メソッドで、削除したい文字列を空文字へ置換することで、文字列を削除できます。
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


```js
var string = "文字列";
// String#replaceで"文字"を削除する
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

String#replaceで"文字"を削除する

こっちのコメントはコードで分かるしいらない感じ

`replace`メソッドでは、キャプチャした文字列を利用しさらに複雑な置換処理をおこなうこともできます。

`replace`メソッドの第二引数にはコールバック関数を渡すことができ、このコールバック関数の返り値が置換した結果となります。
コールバック関数の仮引数は`String#match`メソッドの返り値と似ています。
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

String#matchメソッドの返り値と似ています。

似ているだけで違うわけだけど、あったほうがイメージしやすいかな?
逆にarrayじゃないので混乱する可能性もある?

const [all, ...captures] = str.match(/pattern/);
// vs.
文字列.replace(/(pattern)/, (all, ...captures) => {
    return 置換した結果の文字列;
});

@azu azu changed the base branch from string-search to master March 23, 2017 10:39
@azu azu force-pushed the string-replace branch from 8112b2d to 399bd13 Compare March 23, 2017 10:44
@azu azu merged commit 34dde03 into master Apr 12, 2017
@azu azu deleted the string-replace branch April 12, 2017 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants