【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则
吃水不忘挖井人系列:
EL表达式中使用函数
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head><script type="text/javascript">var phone= '${detailList.serviceRelease.responseiblePhone}'.replace(/(\d{3}).*(\d{4})/, "$1****$2");</script>
</head>
<body>
以下这俩正则应该都可,应对诸如 010-12345678 这种座机 以及 13312345678 这种手机号
.replace(/(\d{3}).*(\d{4})/, "$1****$2");
.replace(/^(\d{3}).*(\d{4})$/, "$1****$2");
问题是在代码里却不能这样写,否则报错 org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression
<span>${fn:replace(detailList.serviceRelease.phone,/(\d{3}).*(\d{4})/,"$1****$2")}</span><span>${detailList.serviceRelease.phone.replace(/(\d{3}).*(\d{4})/, "$1****$2")}</span>
因为 EL表达式不支持正则
正常思路应该是截取length-4到length的序号位
但是也不能用诸如
<span>${fn:substring(phone,phone.length-4,phone.length)}</span>
参考内容如下: http://www.blogjava.net/lardern/archive/2009/03/22/261321.html
首先必须在JSP中声明这个标签库:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>调用方式为:fn:functionName(arg,...)
比如:${fn:length(aCollection)}
length是JSTL库中自带的函数,除此之外常的还有:
函数
描述
fn:contains(string, substring)
如果参数string中包含参数substring,返回true
fn:containsIgnoreCase(string, substring)
如果参数string中包含参数substring(忽略大小写),返回true
fn:endsWith(string, suffix)
如果参数 string 以参数suffix结尾,返回true
fn:escapeXml(string)
将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:indexOf(string, substring)
返回参数substring在参数string中第一次出现的位置
fn:join(array, separator)
将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:length(item)
返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
fn:replace(string, before, after)
返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:split(string, separator)
返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:startsWith(string, prefix)
如果参数string以参数prefix开头,返回true
fn:substring(string, begin, end)
返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
fn:substringAfter(string, substring)
返回参数substring在参数string中后面的那一部分字符串
fn:substringBefore(string, substring)
返回参数substring在参数string中前面的那一部分字符串
fn:toLowerCase(string)
将参数string所有的字符变为小写,并将其返回
fn:toUpperCase(string)
将参数string所有的字符变为大写,并将其返回
fn:trim(string)
去除参数string 首尾的空格,并将其返回
最后实际上可以有效解决问题的代码是:
<span>${fn:substring(detailList.phone,0,3)}****${fn:substring(detailList.phone,fn:length(detailList.phone)-4,fn:length(detailList.phone))}</span>
2020-11-18
ALL BY MedusaSTears
【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则相关推荐
- el表达式ne什么意思_EL表达式的基本语法及运算符
EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp ...
- el表达式ne什么意思_el表达式中的比较eq ne gt lt
eq相等 ne.neq不相等, gt大于, lt小于 gt大于, lt小于 gte.ge大于等于 lte.le 小于等于 not非 mod求模 is [not] div by是否能被某数整除 is [ ...
- 明显调用的表达式前的括号必须具有指针函数类型_基于指针对象的方法
" 本文来源于<The Go Programming Language>" 6.2. 基于指针对象的方法 当调用一个函数时,会对其每一个参数值进行拷贝,如果一个函数需要 ...
- 明显调用的表达式前的括号必须具有指针函数类型_每天三分钟带你搞懂C++基础Day5 处理类型 typedef、auto、decltype...
类型别名(type alias)一个名字,是某种类型的同义词.使用类型名有很多好处,能让复杂的类型名字变得简单明了,易于理解和使用. 有两种方法可用于定义类型别名.传统的方法是使用关键字typedef ...
- MANIFOLD 2-G 踏坑手册
MANIFOLD 2-G 踏坑手册 1. 电源供电问题 2. MANIFOLD 2-G联网问题 3. MANIFOLD 2-G风扇问题 4. 换源 5.MANIFOLD 2-G软件安装 6. open ...
- Purley平台Linpak测试,从踏坑开始一步步优化
Purley平台Linpak测试,从踏坑开始一步步优化 #记2017年11月第一次踏坑事件 测试平台配置: 6nodes CPU: Intel Gold 6132 @2.6GHz 14C RAM: 8 ...
- Reactjs 踏坑指南3:一些例子(未完成)
React 踏坑指南3: 准备工作 知识准备 Reactjs 踏坑指南1: 一些概念 Reactjs 踏坑指南2: JSX&&组件 文件引用 引用文件 文件基本结构 <!DOCT ...
- DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描...
DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之Spr ...
- Reactjs 踏坑指南1: 一些概念
Reactjs 踏坑指南1: 知识点 什么是React 虚拟DOM JSX 组件 生命周期和状态 事件 单项数据流 Reactjs和Angularjs的对比 React简介 React是一个Faceb ...
最新文章
- python七大神级插件_IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)
- “被遗忘的宇航员”逝世,他是阿波罗11号上唯一没登月的人
- ctr 平滑_预算平滑技术在58商业的探索与实践
- 22_2D函数优化实例
- 虚拟环境安装python3
- b宝塔 centos端口更改_centos修改ssh默认端口号的方法示例
- Smarty中直接加JS代码和将JS代码写在literal标签里
- oracle 中关于 SID db_name、instance_name (转)
- Beaglebone移植DDS模块驱动(AD9833)
- 计算机网络模拟器 mac,网易mumu模拟器mac版使用常见问题解决办法_3DM手游
- OpenCV.金字塔(Pyramid).向下金字塔
- 读《如何阅读一本书》乱摘
- 哪种硬盘坏道检测工具最好,有硬盘坏道怎么修复
- 卡卡云模板(适配彩虹发卡系统)
- MySQL的COUNT语句--count(*)、 count(常量)、 count(列名)
- windows10共享移动热点(或说 电脑开WIFI),让手机连接共享的移动热点WIFI
- php 转义反绡线,PHP汉字转拼音
- 第21节 ACL——控制路由器上接口大门的进出规则
- python前端——HTML超文本标记语言、CSS层叠样式表
- 计算机用户登录界面壁纸,怎么修改电脑开机的登陆界面的壁纸