<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="vue.js"></script> <title id="title">{{title}}</title> </head> <body> <div id="ask"><!--vue不能控制body和html的标签--> <ul> <li v-for="(v,k) in list"> {{v.id}} ===== {{v.content}}<button v-on:click="remove(k)">删除</button> </li> </ul> <textarea v-model="content" cols="30" rows="10"></textarea> <button v-on:click="push('pre')">发表到前面</button> <button v-on:click="push('end')">发表到后面</button> <button v-on:click="del('first')">删除第一条</button> <button v-on:click="del('last')">删除最后一条</button> <button v-on:click="sort">排序</button> <button v-on:click="reverse">反转</button> <input type="text" v-on:keyup.enter="search" v-model="search_content"><!--绑定键盘回车事件--> </div> <script> var vue = function (options){new Vue(options)}; vue({ el:'#title', data:{ title:'Vue 变异方法filter和正则RegExp对评论进行搜索' } }); var app = vue({ el:'#ask', data:{ search_content:'', content:'', list:[ {'id':3,'content':'ask.mykeji.net'}, {'id':5,'content':'简单记录'}, {'id':2,'content':'个人博客'}, {'id':1,'content':'学习笔记'}, {'id':4,'content':'想学什么学什么 '} ] }, methods:{ search(){ this.list = this.list.filter((item)=>{ console.log(this.search_content); var reg = new RegExp(this.search_content,'i');/*创建正则*/ return reg.test(item.content); }) }, reverse(){ return this.list.reverse(); }, sort(){ this.list.sort(function (a,b) { return a.id>b.id; }) }, remove(k){ this.list.splice(k,1) }, push(type){ var id = this.list.length+1; var content_push = {id:id,'content':this.content}; switch (type) { case 'pre': this.list.unshift(content_push); break; case "end": this.list.push(content_push); break; } this.content=''; }, del(type){ switch (type) { case 'first': this.list.shift(); break; case "last": this.list.pop(); break; } } } }); </script> </body> </html>