Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Vue JS странность (https://javascript.ru/forum/library-toolkit-framework/77687-vue-js-strannost.html)

Aetae 17.06.2019 21:06

dpts, прости, что не вникал.
На самом деле ты наступил на знатные грабли совсем в другой стороне:
/^\+\d{11}$/g
->
/^\+\d{11}$/
Если регулярка с глобальным модификатором, то она запоминает позицию предыдущего вхождения. А test, как и exec учитывает это.)
<script>
var pattern = /a/g;

document.write( pattern.lastIndex, ' ' , pattern.test('a a a '), '<br>');
document.write( pattern.lastIndex, ' ' , pattern.test('a a a '), '<br>');
document.write( pattern.lastIndex, ' ' , pattern.test('a a a '), '<br>');
document.write( pattern.lastIndex, ' ' , pattern.test('a a a '), '<br>');
document.write( pattern.lastIndex, ' ' , pattern.test('a a a '), '<br>...');

document.close();
</script>


P.S. А правильно форматировать свойства в vue имеет смысл через сеттеры, условно так:
computed:{
  v: {
    get: function(){
      return this.innerV;
    },
    set: function(v){
      this.innerV = v.length > this.max ? v.substr(0,this.max) : v;
    }
  }
}

dpts 18.06.2019 05:44

Благодарю. Запомню про "фичу" регекспов

Цитата:

Сообщение от Aetae (Сообщение 509137)
P.S. А правильно форматировать свойства в vue имеет смысл через сеттеры, условно так:
computed:{
  v: {
    get: function(){
      return this.innerV;
    },
    set: function(v){
      this.innerV = v.length > this.max ? v.substr(0,this.max) : v;
    }
  }
}

Про форматирование свойств через сетерры и геттеры - это понятно.
Лень было пример нормальный писать. Хотел, как короче.


Часовой пояс GMT +3, время: 17:47.