КОД:
validatePassword(value) {
if (!value) {
return 'This field is required';
}
const regex = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/i;
if (!regex.test(value)) {
return 'Password must be:\n-Minimum 6 characters\n-Include minimum 1 Uppercase letter\n-Include minimum 1 lowercase letter\n-Include minimum 1 symbol';
}
return true;
},
Если вы посмотрите на возврат для теста регулярного выражения, я пытаюсь использовать \n для создания новой строки, я пробовал все, что мог придумать, но не могу заставить его дать мне новую строку, когда вызывается возврат. Я не могу вспомнить, что такое синтаксис, и это сводит меня с ума! Чтобы разбить его, это конкретная строка, с которой я борюсь
return 'Password must be:\n-Minimum 6 characters\n-Include minimum 1 Uppercase letter\n-Include minimum 1 lowercase letter\n-Include minimum 1 symbol';
Специальный символ новой строки \n
работает только в системах Unix.
В HTML вы хотите использовать тег <br>
для создания новой строки.
Но это означает, что вам нужно преобразовать строку в html, чтобы она работала. Вы не можете указать новую строку в простой строке без разделения на несколько тегов html.
<template>
<div v-html = "error" />
</template>
<script>
...
validatePassword () {
this.error = "Password must be:<br>-Minimum 6 characters"
}
</script>
Другой способ - разделить сообщение об ошибке так, чтобы 1 строка была одной строкой. Например, вы можете установить все свои сообщения об ошибках в массив и отобразить этот массив в списке ul
.
<template>
<ul v-for = "error of errors" :key = "error">
<li>{{ error }}</li>
</ul>
</template>
<script>
[...]
this.errors = ['Minimum 6 characters', 'Include minimum 1 Uppercase letter', ...]
</script>