javascript - 使用 JavaScript 和 Angularjs 返回正确名称大小写的函数?

标签 javascript angularjs

我正在尝试编写一个函数来更正名称输入,因此如果用户输入:mohamed ahmed,输出将是 Mohamed Ahmed。

我添加了这个过滤器:

app.filter('properName', function () {
    return function (x) {
        var newName = '';
        newName += x[0].toUpperCase();
        for (var i = 1; i < x.length; i++) {
            if (x[i] == ' ') {
                newName += ' ';
                newName += x[i + 1].toUpperCase();
            }
            else {
                newName += x[i].toLowerCase();
            }
        }
        return newName;
    }
});

但是当我输入任何输入时,空格后的字母是重复的;一个大写,一个小写:

var app = angular.module('myApp', []).filter('properName', function () {
    return function (x) {
        var newName = '';
        newName += x[0].toUpperCase();
        for (var i = 1; i < x.length; i++) {
            if (x[i] == ' ') {
                newName += ' ';
                newName += x[i + 1].toUpperCase();
            }
            else {
                newName += x[i].toLowerCase();
            }
        }
        return newName;
    }
});;
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    <div ng-app="myApp">
   
           PN: <input type="text" ng-model="name" ng-bind="n"/>
           Proper Name: <h3 ng-bind="name | properName"></h3>

</div>

最佳答案

尝试改变

if (x[i] == ' ') {
   newName += ' ';
   newName += x[i + 1].toUpperCase();
}

if(i && x[i-1] ==' ' ){
  newName += x[i].toUpperCase();
}

x[i] 是空格时,它可以毫无问题地小写。在真正到达空格后的字符之前,您不想进行调整

关于javascript - 使用 JavaScript 和 Angularjs 返回正确名称大小写的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322662/

相关文章:

javascript - 使用下划线查询对象

javascript - JavaScript 的 JSON stringify 独立函数

javascript - 为什么我的递归函数调用没有返回值?

javascript - url 歧义导致 ui router 实例化 controller 两次

javascript - 当值从 iframe 更改时范围不更新

javascript - 为什么我不能使用 array == [] 检查数组是否为空?

javascript - 预先检查的输入框未被序列化

angularjs - 基于路由隐藏ng-view DOM之外的元素

javascript - Date.parse(int) 在 JavaScript 中返回 true

angularjs - 如何在angularjs中显示带有小数部分的数字