文档章节

php、js、java的正则替换文本方式制作模板内容输出

penngo
 penngo
发布于 2013/01/17 01:20
字数 312
阅读 141
收藏 0
点赞 0
评论 0

 

在制作模板内容输出时,很经常会使用<%=%>之类的占位符,用正则的方式很方便替换这个内容, 工作中只接触到java、php、js,三种语言的 简单的实现方式:
java版

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public  class TestRex {
     public  static  void main(String[] args) {
        Map<String, String> map =  new HashMap<String, String>();
        map.put("name", "penngo");
        map.put("date", "2013-01-17");
        Pattern p = Pattern.compile("<%=(\\w+?)%>");
        String str = "<%=date%>, Hello <%=name%>";
        Matcher m = p.matcher(str);
        StringBuffer sb =  new StringBuffer();
         boolean result = m.find();
         while (result) {
            String key = m.group(1);
            String value = map.get(key);
            m.appendReplacement(sb, value);
            result = m.find();
        }
        m.appendTail(sb);
        System.out.println(sb.toString());
    }
}


php版

<?php
     $data =  array('name'=>'penngo', 'date'=>'2013-01-17');
     function replaceStr( $key$data){
         return  $data[ $key];
    }
     $str = '<%=date%>, Hello <%=name%>';
     $str =  preg_replace("/<%=(\w+?)%>/ise", "replaceStr('\\1', \$data)",  $str);
     echo  $str;
?>


js版

 

<html>
<head>
    <meta charset="UTF-8">
    <script type="text/javascript">
     var date = {'name':'penngo', 'date':'2013-01-17'};
     var str = '<%=date%>, Hello <%=name%>';
    str = str.replace(/<%=(\w+?)%>/g,  function($0, $1){
         var value = date[$1];
         return value;
    });
    document.write(str);
    </script>
</head>
<body>
    
</body>
</html>


运行结果输出:

 

2013-01-17, Hello penngo

 

在php使用strip_tags去掉html标签时,并不能去掉script\style\iframe内部内容

<script>内部内容</script>
<style>内部内容</style>
<iframe>内部内容</iframe>

可以使用正则去掉

$str = preg_replace( "@<script(.*?)</script>@is", "", $str );
$str = preg_replace( "@<iframe(.*?)</iframe>@is", "", $str );
$str = preg_replace( "@<style(.*?)</style>@is", "", $str );
$str = preg_replace( "@<(.*?)>@is", "", $str );

 

© 著作权归作者所有

共有 人打赏支持
penngo
粉丝 76
博文 86
码字总数 55112
作品 2
广州
程序员
JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒 ⋅ 04/28 ⋅ 0

AJAX基础之JavaScript基础与增强(一)

一、什么是JavaScript   JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现...

architect刘源源 ⋅ 05/08 ⋅ 0

React Native通信原理源码分析二

本篇文章已授权微信公众号 JueCode 独家发布 在上一篇中分析了Native调用JavaScript的原理,这一篇我们分析下JavaScript调用Native的原理。上一篇提到的内容这里就不重复了,建议小伙伴们先看...

juexingzhe ⋅ 04/16 ⋅ 0

hi-nginx-1.4.9 正式发布,支持 Javascript 后端开发

hi-nginx-1.4.9已经发布。 更新: 支持javascript后端开发 修复脚本搜索的一个bug 从这一版开始,hi-nginx开始支持javascript,这意味着把javascript应用于后端开发,将不再只有nodejs这唯一...

所以呢 ⋅ 05/14 ⋅ 0

C、C++、Java、JavaScript、PHP、Python分别用来开发什么?

C、C++、Java、JavaScript、PHP、Python分别用来开发什么? 2018-05-25 11:47编辑: 游星啊分类:程序人生来源:代码湾 开发程序人生C 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发...

游星啊 ⋅ 05/25 ⋅ 0

继 Java 版权案之后,甲骨文公司开始向 JavaScript 伸手!

就在 JavaScript 成为 GitHub 网站最为流行、越来越受到广大开发者热衷的编程语言之际,国外网站 reddit 的一篇求助性帖子引发行业内的热议。 帖子大意就是,该作者收到苹果公司的一封邮件,...

亦枫 ⋅ 04/19 ⋅ 0

javaFX实例1-webView实现简单浏览器

webView: 是一个管理webEngine和显示它中间内容的节点。这个对象只能从fx的线程中创建。 webEngine: 是一个管理网页的不可见控件,它可以加载网页,创建文档模型,运行javascript,加载必要...

xiaomin0322 ⋅ 06/13 ⋅ 0

02、Java的lambda表达式和JavaScript的箭头函数

[toc] 前言 在JDK8和ES6的语言发展中,在Java的lambda表达式和JavaScript的箭头函数这两者有着千丝万缕的联系;本次试图通过这篇文章弄懂上面的两个“语法糖”。 简介 Lambda 表达式来源于 ...

weir_will ⋅ 06/14 ⋅ 0

学java还是javascript好?哪个更有前途?

  对于哪种语言好这种问题,其实并没有固定的答案,最重要的还是 兴趣!兴趣!兴趣!重要的事情说三遍。无论做什么开发,永远要以兴趣来驱动自己学习。 先大致的说一下,Java学习是一个需要...

W3Cschool小编 ⋅ 04/23 ⋅ 0

融合了 JavaScript 之力的 Nashorn 或被 JDK 11 弃用

还没有使用过 Nashorn ?如果感兴趣的话,建议尽快去尝试一下,因为 Jim Laskey 最近提交了一个新的 JEP 335 草案,准备弃用 Nashorn JavaScript 脚本引擎、API 以及该 jjs 工具。 从 JDK 6 ...

王练 ⋅ 06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 2分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

OSC_cnhwTY ⋅ 9分钟前 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 11分钟前 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 19分钟前 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 20分钟前 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 49分钟前 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 56分钟前 ⋅ 0

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部