uview文本框验证特殊字符和表情

uview文本框验证特殊字符和表情

<view class="searchText">查询条件</view>
<view class="searchCondition">
	<view style="color: black;padding-left: 2%;"><text style="color: red;">*</text>企业名称</view>
	<view>
		<input class="uni-input" type="text" placeholder="请输入企业名称" @input="inputSearchValue"  v-model="searchValue" 
		style="text-align: right;width: 480upx;color:#7c7777;" placeholder-style="color:#B7B7B7"/>
	</view>
</view>


inputSearchValue:function(e){
	let inputValue = e.target.value;
	// 判断是否含有特殊符号
	let iconRule1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
	if(iconRule1.test(inputValue)){
		this.modalControl = true;
		this.contentText = '内容含有非法字符';
		return;
	}
	
	// 判断是否含有emoji表情
	let iconRule2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
	if(iconRule2.test(inputValue)){
		this.modalControl = true;
		this.contentText = '内容含有非法字符';
		return;
	}
}

### uView 表单验证的使用方法 在 Vue 项目中,`u-view` 是一个基于 `uni-app` 的组件库,提供了丰富的功能便捷的操作接口。其中,`u-form` 组件用于创建表单,并支持灵活的校验机制。 #### 1. **基本配置** 为了实现表单验证,需要设置以下几个属性: - `ref`: 设置为唯一的字符串值,以便后续调用该表单实例的方法。 - `model`: 定义数据模型对象,存储表单项的数据。 - `rules`: 配置校验规则,定义每个字段的约束条件。 以下是基础代码示例[^1]: ```html <template> <view> <!-- 表单 --> <u-form ref="formRef" :model="formData" :rules="validationRules"> <!-- 用户名输入框 --> <u-form-item label="用户名:" prop="username"> <u-input v-model="formData.username" /> </u-form-item> <!-- 密码输入框 --> <u-form-item label="密码:" prop="password"> <u-input type="password" v-model="formData.password" /> </u-form-item> </u-form> <!-- 提交按钮 --> <button @click="handleSubmit">提交</button> </view> </template> ``` #### 2. **数据绑定与校验规则** 在 JavaScript 中,需初始化 `data` 对象中的 `formData` `validationRules` 变量。例如[^2]: ```javascript export default { data() { return { formData: { username: '', password: '' }, validationRules: { username: [ { required: true, message: '请输入用户名', trigger: ['change'] } ], password: [ { required: true, message: '请输入密码', trigger: ['blur'] }, { min: 6, max: 18, message: '长度应在6到18位之间', trigger: ['blur'] } ] } }; }, methods: { handleSubmit() { this.$refs.formRef.validate((valid) => { if (valid) { console.log('表单验证成功'); } else { console.error('表单验证失败'); } }); } } }; ``` 在此示例中,`validate` 方法会触发所有字段的校验逻辑,并返回布尔值表示是否通过验证。 --- #### 3. **动态修改校验规则** 如果需要根据某些条件动态调整校验规则,可以通过重新赋值的方式更新 `rules` 属性。例如[^3]: ```javascript this.validationRules['username'].push({ pattern: /^[a-zA-Z0-9]+$/, message: '仅允许字母数字', trigger: ['change'] }); ``` 随后调用 `clearValidate()` 清除当前错误提示,再执行新的校验流程。 --- #### 4. **批量验证多个表单** 当页面存在多个独立表单时,可以分别为其分配不同的 `ref` 名称,在提交操作中逐一调用各自的 `validate` 方法。例如[^1]: ```javascript methods: { handleMultiSubmit() { const formRefs = ['formRef1', 'formRef2']; let allValid = true; formRefs.forEach(refName => { this.$refs[refName].validate(valid => { if (!valid) allValid = false; }); }); if (allValid) { console.log('所有表单均验证成功'); } else { console.error('部分表单未通过验证'); } } } ``` 此方法能够确保每份表单都完成单独验证后再决定整体状态。 --- ### 总结 以上介绍了如何利用 `u-view` 的 `u-form` 组件实现表单验证的功能,涵盖了从简单场景到复杂需求的应用技巧。无论是单一还是多表单环境下的开发工作都可以借助这些工具高效达成目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值