如何使用 VueJs 阻止文本区域中的某些字符?
How can I block some characters in a textarea with VueJs?
我有一个用于发送消息的文本区域,我想阻止电子邮件和站点链接。因此,当我使用 v-if 编写 @
或 https://
时,必须显示错误消息,但我该怎么做呢?有哪些功能?
new Vue({
el: "#app",
data: {
message: {
content: ""
}
},
})
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<textarea v-bind="message" v-model="message.content" cols="30" rows="10">
</textarea>
<p v-if="message.content == '@'">
No special characters
</p>
</div>
</div>
我认为你应该将方法@change 或@input 添加到文本区域,然后使用正则表达式测试所有内容,而不是替换它或任何你想做的事情
您可以通过正则表达式类型检查您的情况 var regex = /(@|https)/g;
。同时为消息显示控件设置 hasError
数据,您可以使用 vue watch
进行数据更改 (message.content)
new Vue({
el: "#app",
data: {
message: {
content: ""
},
hasError: false
},
watch: {
'message.content': function(newVal,oldVal) {
var regex = /(@|https)/g;
this.hasError = newVal.match(regex);
}
}
})
body {
background: #20262E;
padding: 10px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 10px;
transition: all 0.2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<textarea v-bind="message" v-model="message.content" cols="30" rows="5">
</textarea>
<p v-if="hasError">
No special characters
</p>
</div>
</div>
我有一个用于发送消息的文本区域,我想阻止电子邮件和站点链接。因此,当我使用 v-if 编写 @
或 https://
时,必须显示错误消息,但我该怎么做呢?有哪些功能?
new Vue({
el: "#app",
data: {
message: {
content: ""
}
},
})
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<textarea v-bind="message" v-model="message.content" cols="30" rows="10">
</textarea>
<p v-if="message.content == '@'">
No special characters
</p>
</div>
</div>
我认为你应该将方法@change 或@input 添加到文本区域,然后使用正则表达式测试所有内容,而不是替换它或任何你想做的事情
您可以通过正则表达式类型检查您的情况 var regex = /(@|https)/g;
。同时为消息显示控件设置 hasError
数据,您可以使用 vue watch
进行数据更改 (message.content)
new Vue({
el: "#app",
data: {
message: {
content: ""
},
hasError: false
},
watch: {
'message.content': function(newVal,oldVal) {
var regex = /(@|https)/g;
this.hasError = newVal.match(regex);
}
}
})
body {
background: #20262E;
padding: 10px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 10px;
transition: all 0.2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
<textarea v-bind="message" v-model="message.content" cols="30" rows="5">
</textarea>
<p v-if="hasError">
No special characters
</p>
</div>
</div>