Похоже, ваше выражение reg неверно.Ваше выражение допускает все буквенно-цифровые, а также специальные символы, которые вы включаете.Подчеркивание сделает недействительным ваше регулярное выражение и отключит вашу кнопку.
Это регулярное выражение может использоваться для разрешения любых символов, кроме тех, которые находятся внутри набора символов (^ в скобках соответствует любому символу, который не включен):
/ ^ [^., ': "] * $ /
Конечно, при кодировании в HTML вам нужно экранировать кавычку.
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body ng-app="">
<form name="myForm">
<textarea rows="5" cols="50" name="notes" ng-model="notes" id="notes" ng-pattern="/^[^.,':"]*$/" required
></textarea>
<span ng-show="myForm.notes.$error.required">Notes is required</span>
<span ng-show="myForm.notes.$error.pattern">Invalid Notes</span>
<button type="button" ng-disabled="myForm.$invalid">Click me</button>
</form>
</body>
</html>