<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" />
<script data-require="jquery@*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script data-require="knockout@*" data-semver="3.3.0" src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<h1><a href="https://github.com/Knockout-Contrib/Knockout-Validation" target="_blank">Knockout Validation</a> Demo</h1>
<input type="text" data-bind="textInput: ssn" >
<hr/>
Valid: <span data-bind="text: ssn.isValid"></span>
</body>
</html>
// Code goes here
function ViewModel(){
var self = this;
self.ssn = ko.observable('').extend({
required: true,
minLength: 9,
maxLength: 11,
pattern: {
message: 'Enter a valid SSN',
params: /^[0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4}$/g
}
});
}
$(function(){
var vm = new ViewModel();
ko.applyBindings(vm);
});
/* Styles go here */