Строка формата AngularJS внутри двойных фигурных скобок с использованием replace () с регулярным выражением - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь отформатировать MAC-адрес в таблице, заполненной с помощью AngularJS:

<tr ng-repeat="dev in devices">
<td>{{dev.mac.replace(/(.{2})/g,"$1:")}}</td>
</tr>

{{dev.mac}} работает очень хорошо (не считая не отформатированной), но когда я добавляю .replace()Функция это ломается.Я попытался избежать косой черты, основываясь на полученной ошибке, которая не помогла..replace() недоступен в браузере, или есть другой синтаксис для регулярных выражений в двойных скобках или что я делаю не так?

Цель состоит в том, чтобы преобразовать AABBCCDDEEFF в AA: BB: CC: DD: EE: FF как можно проще в двойных скобках.В качестве дополнительного вопроса, как мне предотвратить в конце регулярное выражение ':' (в настоящее время он печатает AA: BB: CC: DD: EE: FF:)?

Редактировать: Добавление сообщения об ошибке

Ошибка: $ parse: синтаксическая ошибка синтаксиса

Синтаксическая ошибка: маркер '/' не является основным выражением в столбце 20 выражения [dev.mac.replace (/ (. {2})) / g, "$ &:")], начиная с [/(.ndom2 automotive)/g,"$&:"].

Это, похоже, указывает на то, что прямой слеш вызываетпроблема, но, как я уже сказал, избежать этого не поможет.

1 Ответ

0 голосов
/ 20 декабря 2018

Вместо того, чтобы выполнять замену встроенным способом, было бы лучше абстрагировать это в функцию, которая должна исправить любые проблемы, которые у вас возникают с ней, неправильно интерпретируемые.В этой статье показан правильный синтаксис объявления функции в области для вызова здесь: вызов функции внутри угловых двойных фигурных скобок , это должно быть что-то вроде

$scope.fixMacAddress = function(addr)
{
   return addr.replace(/(.{2})/g,"$1:")
}

и

{{ fixMacAddress(dev.mac) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...