el表达式在js中有时需要加引号才可以用,何时需要加引号,何时不需要加引号

本文探讨了JavaScript中使用EL表达式时的一个常见问题:为何有时需要在EL表达式两侧添加引号。通过示例解释了不同情况下EL表达式的处理方式,并与MyBatis中的${}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本以为js是弱语言,对语言的要求不高,但是今天遇见一个坑,在js代码中编写el表达式,却一直没反应,代码如下

$(function(){
	 var msg = ${msg};
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});

在此代码中,接收服务器返回的msg信息,用el表达式取值,却一直没有反应,应该在el表达式两边加引号,如下:
$(function(){
	 var msg = "${msg}";
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});

然后就可以顺利取值了.

那么为什么这次需要加引号才有作用,我们先看一下

浏览器端的源代码

$(function(){
	 var msg = "ip不正确";
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});

服务器给浏览器发送的是el表达式取值后的结果,也就是说el表达式是在服务器端完成的解析,如果el表达式的取值是字符串的话,如果不加引号,那么响应到浏览器的源码为:

var msg = ip不正确

是错误的js格式,

所以el表达式的取值如果是字符串的话就必须加上引号,如:

var msg = "ip不正确"

才可以正常显示,

如果el表达式的值为对象或数值,就不用加引号,


这个原理是不是类似在mybatis文件中${}和#{}的区别,

${}是取值,不带引号,

#{}自动带引号,把值转换成字符串


在JavaScript中,可以使用正则表达式来限制`el-input`输入框的输入内容。我们可以通过监听输入框的`input`事件,并在事件处理函数中使用正则表达式来验证输入内容。如果输入内容符合要求,则可以将其替换为符合要求的格式。 以下是一个示例代码,展示了如何使用正则表达式来限制`el-input`输入框只允许输入中文、英文字符以及单引号和双引号允许空白符: ```html <template> <div> <el-input v-model="inputValue" @input="validateInput"></el-input> </div> </template> <script> export default { data() { return { inputValue: '' } }, methods: { validateInput() { // 正则表达式:只允许中文、英文字符以及单引号和双引号允许空白符 const regex = /^[\u4e00-\u9fa5a-zA-Z'"]+$/; if (!regex.test(this.inputValue)) { // 如果输入符合要求,则替换为符合要求的格式 this.inputValue = this.inputValue.replace(/[^[\u4e00-\u9fa5a-zA-Z'"]/g, ''); } } } } </script> ``` 在这个示例中,我们使用了正则表达式`/^[\u4e00-\u9fa5a-zA-Z'"]+$/`来验证输入内容。这个正则表达式的含义如下: - `^`表示字符串的开始。 - `[\u4e00-\u9fa5a-zA-Z'"]`表示允许输入的字符集,包括中文字符(`\u4e00-\u9fa5`)、英文字符(`a-zA-Z`)以及单引号和双引号(`'`和`"`)。 - `+`表示前面的字符集可以出现一次或多次。 - `$`表示字符串的结束。 如果输入内容符合这个正则表达式的要求,则使用`replace`方法将符合要求的字符替换为空字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值