gpt4 book ai didi

javascript - Angular 中的单词替换过滤器的正则表达式问题

转载 作者:行者123 更新时间:2023-11-29 15:31:40 25 4
gpt4 key购买 nike

我正在使用下面的过滤器将字符串转换为驼峰式大小写。除此之外,我不希望将包含字母数字字符的字符串转换为驼峰式大小写。

例如:

如果输入是“HELLO I AM INDIA1237”

输出必须是“你好,我是 INDIA1237”

我的过滤器如下:

angular.module('app')
.filter('titleCase', function() {
return function(input) {
input = input || '';
input = input.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); //convert to camelcase
return input.replace(/[A-Za-z0-9 ]/, function(txt){return txt.toUpperCase();}); //retain alphanumeric string in uppercase

};
});

第二个条件似乎不起作用。谁能帮忙。

最佳答案

您的正则表达式不正确。

\w 匹配字母数字字符,因此您的第一个正则表达式不应使用该规则。你可能想要:/[A-Za-z]+/

您的第二个正则表达式有两处错误。首先,它只匹配一个字符。其次,它将始终匹配第一个所做的相同事情。

您需要一个仅匹配具有数字的单词的正则表达式。所以你需要这样的东西:/[A-Za-z]+[0-9][A-Za-z]*/。这将匹配一个或多个字母,后跟至少一个数字,然后是零个或多个字母或数字。如果这些词总是以数字结尾,那么您可以将其简化为 /[A-Za-z]+[0-9]+/

关于javascript - Angular 中的单词替换过滤器的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com