【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则

2023-11-05

吃水不忘挖井人系列:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则 的相关文章

随机推荐

  • 微信小程序获取当前的地理位置wx.getLocation接口快速通过审核的解决办法

    某鱼社区团购商城系统小程序提交审核接口一直没通过 分析了原因多半是没提交图片 某鱼社区团购商城系统小程序会用到以下三个接口 其中wx getLocation接口经常发现不通过 这问题我也遇上过提交了两次才通过 某鱼社区团购商城系统小程序这三
  • MyBatis源码分析之SqlSession

    SqlSession接口以及门面模式 SqlSession是一个接口类型 它的接口方法包含了如下几个方面的功能 增删改查的操作 selectOne selectList delete update insert等操作 事务的管理操作 com
  • C语言指针互换的方法,C语言-运用指针进行角色互换

    问题描述 运用指针进行角色互换 源代码 运用指针进行角色互换 只有方案二可以完成角色互换 include void swap1 int x int y swap2 int px int py swap3 int px int py int
  • servlet中用PrintWriter打印输出汉字乱码的解决方法

    楼主我呢 闲来没事 想温习下原先学习的servlet 就写了个小程序 课没想到 楼主竟然被小小的乱码问题难倒了啊 楼主想了半天也没发现错误啊 郁闷 郁闷 楼主开先这样写的 PrintWriter pw res getWriter res s
  • ipsec 连接删除问题

    ipsec 连接如果配置了多个子网 需要使用以下命令逐个删除子网连接 sudo ipsec auto delete to206 3x2 否则会导致某些子网连接没断开 SA等删除不干净等问题 同时可以修改源码 在被动端修改断线检测 DPD 当
  • 用inno setup制作管理员权限启动的安装包

    inno setup制作的安装包 默认是不需要管理员权限启动的 我们制作安装包 往往需要做一些设置工作 这些设置工作可能用到管理员权限 使用Resource Hacker修改inno setup资源 使inno settup生成的安装包以管
  • git clone 指定的单个目录或文件夹

    git clone 指定的单个目录或文件夹 针对自己的项目 方法一 基于sparse clone变通方法 创建一个空仓库 拉取远程仓库信息 开启 sparse clone 设置过滤 更新仓库 创建空仓库 mkdir devops cd de
  • VLC LIVE555音视频同步学习

    音频知识 采样频率是指将模拟声音波形进行数字化时 每秒钟抽取声波幅度样本的次数 正常人听觉的频率范围大约在20Hz 20kHz之间 根据奈奎斯特采样理论 为了保证声音不失真 采样频率应该在40kHz左右 常用的音频采样频率有8kHz 11
  • Flask View(视图学习)

    Flask Flask 简介 什么是flask 用于进行 web开发的python框架 业务逻辑处理 协议处理不需要操心 Flask 使用架构MVT M model 用于和关系型数据库交互 V View 接受请求 处理请求 返回相应 T T
  • js 将字符串转化为number的简单方式

    str 前边加上 正负号即可 console log 11 typeof 123 number console log 11 typeof 123 number 2 就是使用运算符减 乘 除的其中一种 在不改变原值的情况下 和number类
  • 魔兽世界开服一条龙服务端架设服务器搭建

    魔兽世界开服一条龙服务端架设服务器搭建 作为魔兽世界资深玩家 你是否有想过自己开服当服主 相信能看到此篇文章的你心里是有想法的 首先你需要知道开魔兽需要准备哪些东西 我是艾西今天带您了解下魔兽世界开服需要的东西 想要搭建一个魔兽商业服 需要
  • 数字之和

    链接 https www nowcoder com questionTerminal ae759916631f4711a90c4d4d9657f4b0 toCommentId 382873 来源 牛客网 对于给定的正整数 n 计算其十进制形
  • PyQt5 组件之QSlider

    QSlider简介 QSlider控件提供一个垂直或者水平的滑动条 滑动条是一个用于控制有界值典型的控件 它允许用户沿水平或者垂直方向在某一范围内移动滑块 并将滑块所在的位置转换为一个合法范围内的整数值 有时候这中方式比输入数字或者使用Sp
  • 双系统如何在Centos7中添加GRUB2启动项

    GRUB2是Centos7的默认引导加载程序 它可以轻松地加载所有的Linux发行版和其他操作系统 它提供一个菜单显示所有的操作系统 GRUB2具有高级特性以及一些基本特性 使其在所有Linux上都有效 文内含长段代码可复制可往左滑 希望对
  • Docker保存镜像到本地并载入本地镜像文件

    目录 一 适用情况 二 镜像保存到本机 1 查看已有的镜像文件 2 将镜像保存为本地文件 保存指令一 保存指令二 测试根据镜像ID保存镜像 三 载入本地镜像 载入指令一 载入指令二 载入通过镜像ID保存的本地镜像 四 批量保存和载入镜像脚本
  • 全网最详细中英文ChatGPT-GPT-4示例文档-步骤指示智能生成从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    从0到1快速入门步骤指示智能生成应用场景 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node js接口请求示例
  • 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

    转载地址 https www cnblogs com ChromeT p 11122480 html 目录 开始制作CA根证书 创建私钥 创建证书请求 生成CA自签证书 制作服务器证书 向 本地keystore 密钥库中导入证书 导入服务器
  • 结构方程模型_结构方程模型(SEM)到底有多厉害?

    什么是结构方程模型 结构方程模型是高级定量方法中最常见的统计方法之一 在社会科学以及经济 市场 管理等研究领域 有时需处理多个原因 多个结果的关系 或者会碰到不可直接观测的变量 即潜变量 这些都是传统的统计方法不能很好解决的问题 结构方程模
  • qt传指针

    1 传指针 需要获取并且初始化 2 接口函数应该指明其父窗口
  • 【MedusaSTears】记一次踏坑:EL表达式不支持正则_EL表达式使用函数一览表_手机/座机号码脱敏正则规则

    吃水不忘挖井人系列 EL表达式中使用函数 以下这俩正则应该都可 应对诸如 010 12345678 这种座机 以及 13312345678 这种手机号