×
Namespaces

Variants
Actions

使用Prototype JavaScript库: 在WRT应用中进行字符串操作

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
兼容于
文章
dougcn 在 22 Apr 2008 创建
最后由 hamishwillee 在 09 May 2012 编辑

Contents

简介

总所周知,Prototype是一个著名的跨浏览器JavaScript库, 它支持几乎所有当前流行的浏览器,比如: FireFox, Safari, IE, Opera, 等等。 Prototype最新版(1.6.0),甚至更早版本,也支持AppleWebKit。AppleWebKit是一个有Apple公司开源的Web引擎。(它也是Safari的核心引擎。)

Nokia Web浏览器建立在S60WebKit上,S60WebKit是开源的WebKit项目在S60平台上的移植。Nokia WRT(Web-RunTime)也基于此。

这个部分将演示如何使用prototype.js库操纵字符串。

字符串操作——使用String类

在prototype.js库中, String类有许多有用的方法。下面是这个类的方法清单:

blank, camelize, capitalize, dasherize, empty, endsWith, escapeHTML, evalJSON, evalScripts, extractScripts, gsub, include, inspect, interpolate, isJSON, parseQuery, scan, startsWith, strip, stripScripts, stripTags, sub, succ, times, toArray, toJSON, toQueryParams, truncate, underscore, unescapeHTML, unfilterJSON

上面的列举中,下面几个函数将在样例应用中进行测试。

  • gsub(pattern, replacement) -> string

全局搜索替换函数。

Returns the string with every occurrence of a given pattern replaced by either a regular string, the returned value of a function or a Template string. The pattern can be a string or a regular expression.

  • escapeHTML() -> string

转义函数。将HTML特殊字符转换为对应的编码字符。

Converts HTML special characters to their entity equivalents.

  • unescapeHTML() -> string

转义函数。将字符串中含有的编码形式的特殊HTML字符转换为其正常的格式。

Strips tags and converts the entity forms of special HTML characters to their normal form.

String类的完全参考,请浏览: http://www.prototypejs.org/api/string

下面是本主题样例应用的几个测试用例:

  • 第一个用例是如何使用gsub函数(正则表达式)
  • 第二个演示如何使用gsub函数(回调函数)
  • 第三个演示如何模板化方式生成格式化的字符串——使用Template类
  • 最后一个演示如何对含有HTML标签的字符串进行escape与unscape操作

前三个测试用例的样例代码来自: http://www.sergiopereira.com/articles/prototype.js.html#Strings, 请到这里查看更多信息。

这里,我仅对最后一个用例的测试代码做些解释。 在这个例子Widget的主HTML文件中,有两个占位符,用于显示由JavaScript代码生成的结果。前一个占位显示字符串变量的原本内容;后一个用于显示该字符串的被转义后的版本。 相关代码示例如下:

HTML Code:

<div id="aholder1">Holder1: <span id="holder1">This data will be replaced.</span></div>
<div id="aholder2">Holder2: <span id="holder2">This data will be replaced also.</span></div>

Javascript Code:

// test case: escapseHTML
function testEscapeHTML()
{
var data = "<b>Hello, world!</b>";
 
$('holder1').innerHTML = data;
alert ($('holder1').innerHTML);
$('holder2').innerHTML = data.escapeHTML();
alert ($('holder2').innerHTML);
}
// test case: unescapseHTML
function testUnescapeHTML()
{
var data1 = $('holder1').innerHTML;
alert(data1.unescapeHTML());
var data2 = $('holder2').innerHTML;
alert(data2.unescapeHTML());
}

所有的测试用例都通过了。你自己可以测试String类的其他方法。

下一个主题将是对象创建

下载样例程序

下载本主题的样例Widget: File:PrototypeString.zip. 安装时,将后缀.zip改为.wgz。

对于最新版本,请浏览: http://code.google.com/p/prototypewrt/downloads/list

相关主题

参考

  • Prototype主页 [1]
  • 使用prototype [2]
  • 样例WRT应用下载[3]
This page was last modified on 9 May 2012, at 08:05.
65 page views in the last 30 days.