Edit in JSFiddle

<div class="container" ng-app="app" ng-controller="MainCtrl">
    <header>
        <div class="page-header">
             <h2>バインディングに連動したフォームの検証<small>(正規表現)</small></h2>

        </div>
    </header>
    <section>
        <form name="form" class="form-horizontal">
            <div class="form-group" ng-class="{'has-error':!form.pw.$valid}">
                <label for="tiPw" class="col-sm-2 control-label">パスワード</label>
                <div class="col-sm-10">
                    <!-- ng-patternでvalidになる正規表現を指定。requiredでnullチェックも同時に行っている。 -->
                    <input id="tiPw" type="text" class="form-control" placeholder="5文字以上10文字以下" ng-model="pw" name="pw" ng-pattern="/^.{5,10}$/" required />
                </div>
            </div>
            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-2">
                    <button class="btn btn-primary btn-block" ng-disabled="!form.pw.$valid">送信</button>
                </div>
            </div>
        </form>
    </section>
</div>
// appというAngularJSアプリケーションモジュールを作成
var app = angular.module('app', []);

// アプリケーションモジュールにMainCtrlというコントローラーを追加
app.controller('MainCtrl', function ($scope) {});

External resources loaded into this fiddle: