Java 实现 JS的eval函数

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);            }        }
时间: 2024-12-14 09:45:34

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

js的eval()函数及其java实现(计算数学表达式)

概述:js的eval(str)可用于返回数学表达式的计算结果,但表达式的中括号"["和"]"表示连接符,不像算术里面的"先小括号,后中括号",花括号"{"不能被使用, 所以str的中括号和花括号都必须替换成对应的圆括号 java代码执行js: public static void main(String[] args) { ScriptEngineManager factory = new ScriptEngineManage

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

在检查组内小伙伴提交的tabToggler插件的js代码时,发现了onclick的如下用法: el.onclick = function(){ //按钮样式切换 for(var i=0;i<obj.btns.length;i++){ obj.btns[i].classList.remove("current"); } this.classList.add("current"); //内容显示切换 for(var j = 0;j<obj.divs.leng

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

最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是如果资源多了,当然就很慢.图片.css .js .html这些资源每个大概需要10-200ms ,一般都是30ms就ok了.不过webview是必须等到全部资源都完成加载,才会进行渲染的,所以加载的速度很重要!从Google上我们了解到,webview加载页面的顺序是:先加载html,然后从里面解析

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

简介 前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用,同时也算是之前学习的知识的一种总结吧! 首先我们先了解一下模版引擎的工作原理吧! 1. 模版引擎其实就是将指定标签的内容根据固定规则,解析为可执行语句字符串: 2. 执行可执行解析后的语句字符串,即生成我们想要的页面结构. 具体实现方法: 1. 最终效果 1 /* 解析前 2 <ul> 3 {{for(var i = 0; i < data.todos.length; ++i)}} 4 {{if(data.to

JAVA调用JS函数

今天在开发中使用到了js和Java的交互,平时我们用的比较多的就是js调用Java的方法,可以使用dwr.Ajax.jquery.突然发现要Java调用js的话还真没有见过,今天上网查询了下资料,顺便总结一下: 前提条件:jdk1.6才支持,1.6以前的就不行了. js代码如下: function convert (id,str) { if ('505041'==id) { return str; } else { return "A"; } } Java代码如下: package c

JS的全局函数eval解析JSON字符串函数

JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. 返回值 通过计算 string 得到的值(如果有的话). 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回.因此请不要为 eval() 函数传递 String

js eval函数使用,js对象和字符串互转.

JavaScript eval() 函数  JavaScript 全局函数 定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. <!DOCTYPE html> <ht

js eval()函数

定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string); eval()函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值. 实际用法举例: 1.利用字符串创建变量: var abc=20; var i="ab"; alert(i+&

JS eval()函数的一些见解

一.eval是基本使用规则 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 2 eval(string) 3 string必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. 4 eval()只有一个参数. 5 eval使用比较不安全,忘慎重使用 二.eval的错误使用方法 1 如果传入的参数不是字符串,它直接返回这个函数. 2 如果参数是字符串,它会把字符串当成JavaScript代码进行编译,如果编译失败者抛出一个语法错误