LoginSignup
0
0

More than 5 years have passed since last update.

jsFiddle + AngularJS > webページの内容から数字だけを取得する (力技編)

Last updated at Posted at 2016-03-20
背景
Javascript歴: 2時間

やろうとしたこと

webページの文字列(以下のようなもの)から数値だけ抜き出したい。

[{"rendered_body":"<p>http.getを使う例へのリンク</p>\n\n<p><a href=\"http://jsfiddle.net/jsengel/t3kcwc7y/\" class=\"autolink\">http://jsfiddle.net/jsengel/t3kcwc7y/</a></p>\n\n<p>学習事項</p>\n\n<ul>\n<li>$scope.</li>\n<li>$http.get()</li>\n<li>.then()</li>\n<li>.success()</li>\n<li>.error()</li>\n</ul>\n\n<p>内容を理解せずに data を代入しないこと。(大量データに対して)ブラウザが固まる現象に遭遇したので。</p>\n","body":"http.getを使う例へのリンク\n\nhttp://jsfiddle.net/jsengel/t3kcwc7y/\n\n\n学習事項\n\n- $scope.\n- $http.get()\n- .then()\n- .success()\n- .error()\n\n内容を理解せずに data を代入しないこと。(大量データに対して)ブラウザが固まる現象に遭遇したので。\n\n\n","coediting":false,"created_at":"2016-03-21T07:39:21+09:00","id":"a6b340097e34b6ea9d2f","private":false,"tags":[{"name":"link","versions":[]},{"name":"AngularJS","versions":[]},{"name":"jsFiddle","versions":[]}],"title":"jsFiddle / AngularJS > Link > http example","updated_at":"2016-03-21T07:39:21+09:00","url":"http://qiita.com/7of9/items/a6b340097e34b6ea9d2f","user":{"description":"セブンオブナインです。\r\nUnimatrix 01の第三付属物 9の7という識別番号です。Star trek Voyagerの好きなキャラクターです。\r\n\r\nまとめ記事は後日タイトルから内容がわからなくなるため、title検索で見つかるよう個々の記事にしてます。\r\n\r\nいわゆるBorg集合体の有名なセリフから「お前たち(の知識)を吸収する。抵抗は無意味だ」。Thanks in advance.","facebook_id":"","followees_count":30,"followers_count":55,"github_log

code v0.1

<div ng-controller="MyCtrl">
  Hello, {{name1}}
</div>
var myApp = angular.module('myApp',[]);

function MyCtrl($scope, $http) {
//    $http.get('https://qiita.com/api/v2/items?page=1&per_page=1').success(function(data, status, headers, config) {
//      });

        // test data
    data = '[{"rendered_body":"<p>http.getを使う例へのリンク</p>\n\n<p><a href=\"http://jsfiddle.net/jsengel/t3kcwc7y/\" class=\"autolink\">http://jsfiddle.net/jsengel/t3kcwc7y/</a></p>\n\n<p>学習事項</p>\n\n<ul>\n<li>$scope.</li>\n<li>$http.get()</li>\n<li>.then()</li>\n<li>.success()</li>\n<li>.error()</li>\n</ul>\n\n<p>内容を理解せずに data を代入しないこと。(大量データに対して)ブラウザが固まる現象に遭遇したので。</p>\n","body":"http.getを使う例へのリンク\n\nhttp://jsfiddle.net/jsengel/t3kcwc7y/\n\n\n学習事項\n\n- $scope.\n- $http.get()\n- .then()\n- .success()\n- .error()\n\n内容を理解せずに data を代入しないこと。(大量データに対して)ブラウザが固まる現象に遭遇したので。\n\n\n","coediting":false,"created_at":"2016-03-21T07:39:21+09:00","id":"a6b340097e34b6ea9d2f","private":false,"tags":[{"name":"link","versions":[]},{"name":"AngularJS","versions":[]},{"name":"jsFiddle","versions":[]}],"title":"jsFiddle / AngularJS > Link > http example","updated_at":"2016-03-21T07:39:21+09:00","url":"http://qiita.com/7of9/items/a6b340097e34b6ea9d2f","user":{"description":"セブンオブナインです。\r\nUnimatrix 01の第三付属物 9の7という識別番号です。Star trek Voyagerの好きなキャラクターです。\r\n\r\nまとめ記事は後日タイトルから内容がわからなくなるため、title検索で見つかるよう個々の記事にしてます。\r\n\r\nいわゆるBorg集合体の有名なセリフから「お前たち(の知識)を吸収する。抵抗は無意味だ」。Thanks in advance.","facebook_id":"","followees_count":30,"followers_count":55,"github_log'

    data = data.replace(/[a-zA-Z]/g, "");
    data = data.replace(/(\[|\{|\"|:|<|>)/g, "");
    data = data.replace(/(\/|=|\.|_|\+|\(|\))/g, "");
    data = data.replace(/(\$|-|}|\)|\]|\})/g, "");
    data = data.replace(/,/g, "");
    data = data.replace(/[\u2570-\u25ff]/g, "");
    data = data.replace(/[\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff]/g, "");
    data = data.replace(/[\u3041-\u309F]/g, ""); // hiragana
    data = data.replace(/[\u30A1-\u30FA]/g, ""); // katakana
    data = data.replace(/[\u3000-\u30FF]/g, ""); // long dashed etc
    data = data.replace(/[\uFF00-\uFFFF]/g, ""); // braces
    data = data.replace(/ /g,"");
    data = data.replace(/[\u2000-\u206F]/g, "");
    data = data.replace(/[\u2200-\u22FF]/g, "");
    data = data.replace(/[\u0000-\u001F]/g, "");

    $scope.name1 = data;
}
結果
Hello, 3737372016032107392109006340097346922016032107392109007963400973469201973055

一応できたが、力技過ぎる。

/^D/gなど試したが、うまく動作しなかった。

これを使ってZundokoしようとしたがうまく動作しなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0