JS的eval 函数, 给个表达式做参数, 返回表达式的值。

Java的脚本引擎可以实现这个功能。

例子:

  拼接一个字符串 \uxxxx, Unicode的十六进制编码, 然后把它打印出来。 即输入一个'\u5236' 字符串, 然后输出一个中文Unicode字符“制”。

package test;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; public class ScriptEngineDemo {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine se = manager.getEngineByName("js");
        String str = "\'\u5236\'";          // 传 "\u5236", JS是认不出来的。 传"\'u5236\'"
        String result =  (String) se.eval(str);
        System.out.println(result);        
    }        
}

Java 实现 JS的eval函数的更多相关文章

  1. JS的eval函数解密反混淆

    https://www.hhtjim.com/js-decryption-de-obfuscate-eval-function.html JS的eval函数解密反混淆

  2. 用Java开发一个工具类,提供似于js中eval函数功能的eval方法

    今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...

  3. js的eval函数解析后台返回的json数据时为什加上圆括号eval("("+data+")"),而HTML页面定义的数据不用

    一,情况如下,这是成功代码: $(function () { $.ajax({ url: "Demo.aspx", type: "post", data: { ...

  4. js的eval函数

    今天在看代码的时候发现了一个eval函数,不解其意,通过查询之后,终于知道了,下面是我的总结. eval函数可以将字符串生成语句执行,格式为:eval(coding),类似于sql语句里面的exec( ...

  5. 用js的eval函数模拟Web API中的onclick事件

    在检查组内小伙伴提交的tabToggler插件的js代码时,发现了onclick的如下用法: el.onclick = function(){ //按钮样式切换 for(var i=0;i<ob ...

  6. js中eval函数

    后台数据 // 回显复选框用 List<Long> tempRoles = new ArrayList<Long>(); @SuppressWarnings("unc ...

  7. JS中eval函数的使用

    /*************************************************注册用户证件号 复选框 combox循环赋值**************************** ...

  8. Android WebView加载本地html并实现Java与JS交互

    最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...

  9. js模版引擎开发实战以及对eval函数的改进

    简介 前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用,同时也算是之前学习的知识的一种总结吧! 首先我们先了解一下模版引擎的工作原理吧! 1. 模版引擎其实就是将指定标签的内容根 ...

随机推荐

  1. 关于html的小bug

    废话不说 看代码 因为最近比较忙  所以不闲聊了啊 <!DOCTYPE html> <html lang="en"> <head> <me ...

  2. Earth Hour(最短路)

    Earth Hour Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  3. django启动时报错:Apps aren't loaded yet.

    1.解决方法 编辑manage.py文件,在文件顶部引入django模块.

  4. 在spring boot中使用自定义的properties

    1 在application.properties中添加 android.name=Tim android.password=123456 新建一个保存该Setting的配置类, @Configura ...

  5. mongo explain分析详解

    1 为什么要执行explain,什么时候执行 explain的目的是将mongo的黑盒操作白盒化. 比如查询很慢的时候想知道原因. 2 explain的三种模式 2.1 queryPlanner 不会 ...

  6. linux shell脚本: 自动监控网站状态并发送提醒邮件

    1.创建监控脚本:$ vi /alidata/shell/webcheck.sh #!/bin/sh weblist="/alidata/shell/weblist.txt" my ...

  7. 我的Android进阶之旅------>如何将Android源码导入Eclipse中来查看(非常实用)

    Android源码下载完成的目录结构如如所示: step1:将.classpath文件拷贝到源代码的根目录 Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开 ...

  8. 用VirtualBox和vagrant在win7&#215;64上搭建ruby on rails 开发环境

    下载准备 1.vagrant 官方  WINDOWS Universal (32 and 64-bit) http://www.vagrantup.com/downloads.html 2.Virtu ...

  9. python -virtualenvwrapper 切换不同的python版本

    环境: 安装了python2.7和python3.4, 两个版本都安装了virtualenv和virtualenvwrapper 在windows cmd中键入mkvirtualenv -p C:\P ...

  10. redis于spring整合之RedisTemplate

    原文地址: http://www.jianshu.com/p/7bf5dc61ca06