Я хочу найти строку, используя AngularJS по последнему символу строки. Я сделал поиск по первой букве. Я попытался lastIndexOf()
и закончил, но не могу получить результат.
Этот работает нормально и для поиска первой буквы в строке.
var app = angular.module('filterSample', []);
app.controller('filterCtrl', function($scope) {
$scope.data = {
messages: ['first', 'second', '3rd', 'fourth', 'fifth']
}
$scope.startsWith = function(actual, expected) {
var lowerStr = (actual + "").toLowerCase();
return lowerStr.indexOf(expected.toLowerCase()) === 0;
}
});
<!doctype html>
<html ng-app="filterSample">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js">
</script>
<script src="example.js"></script>
</head>
<body>
<div ng-controller="filterCtrl">
<input type="text" ng-model="search" />
<ul border="1px" ng-repeat="msg in data.messages | filter:search:startsWith">
<li>{{msg}}</li>
</ul>
</div>
</body>
</html>
2
Elamparithi doodleblue
28 Авг 2017 в 12:21
3 ответа
Лучший ответ
Вы можете использовать endsWith()
метод для проверки последнего символа строки:
endsWith()
определяет, заканчивается ли строка символы указанной строки, возвращающие true или false как соответствующий.
var app = angular.module('filterSample', []);
app.controller('filterCtrl', function ($scope) {
$scope.data = {
messages: ['first', 'second', '3rd', 'fourth', 'fifth']
}
$scope.startsWith = function (actual, expected) {
var lowerStr = (actual + "").toLowerCase();
return lowerStr.endsWith(expected.toLowerCase());
}
});
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
<div ng-app="filterSample" ng-controller="filterCtrl">
<input type="text" ng-model="search" placeholder="Search by last char" />
<ul border="1px" ng-repeat="msg in data.messages | filter:search:startsWith">
<li>{{msg}}</li>
</ul>
</div>
1
Mistalis
28 Авг 2017 в 09:32
Просто измените какой индекс вы ищете
$scope.endsWith = function (actual, expected) {
var lowerStr = (actual + "").toLowerCase();
return lowerStr.indexOf(expected.toLowerCase()) === (lowerStr.length - 1);
}
0
insider
28 Авг 2017 в 09:23
Вы можете использовать charAt
var lastChar = myString.charAt(myString.length-1);
0
Jayanti Lal
28 Авг 2017 в 09:58
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.