var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.removeSpace=function(){
$scope.name = $scope.name.replace(/\s+/g, ' ');
}
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<div ng-controller="myCtrl">
<input name="txtName" type="text" ng-focus="true" ng-model="name"
ng-change="removeSpace()" autocomplete="off" list="name"
class="form-control" ng-minlength="2" ng-maxlength="50"
ng-pattern="/^[a-zA-Z- ]*$/" placeholder="Name" required>
</div>
&#13;
.html代码
< input name="txtName" type="text" ng-focus="true" ng-model="name"
ng-change="removeSpace()" autocomplete="off" list="name"
class="form-control" ng-minlength="2" ng-maxlength="50"
ng-pattern="/^[a-zA-Z- ]*$/" placeholder="Name" required >
.js文件代码
$ scope.removeSpace =函数(){
$ scope.name =
$ scope.name.replace(/ \ s + / g,&#39;&#39;);
}
O/p:- name :- atul n kumar
Error: $scope.name is undefined
当我在文本框中输入此名称时,低于o / p,但更改事件不正确。我在名称之间输入二十个或更多空格然后给出错误。我想&#34; atul n kumar &#34;输出。然后不要将多个空间替换为单个空格。
答案 0 :(得分:0)
如果您只想更换空格而不是标签或换行符,您可以这样做;
$scope.nam = $scope.nam.replace(/ +/g, ' ');
答案 1 :(得分:0)
我的代码中没有出现问题。
你可以看到这个jsBin,你可以看到它正常工作
https://jsbin.com/zexomineti/edit?html,js,output
但是,请注意我将removeSpace包含在一个名称存在的检查中,因为当名称仍然未定义时,可以调用ng-change,这会导致您看到的错误。
如果名称仍未定义,则无法在名称上调用替换。
所以:
$scope.name.replace(/\s+/g, ' ');
是:
if ($scope.name){
$scope.name = $scope.name.replace(/\s+/g, ' ');
}