Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 00:28, 24 April 2008.

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

From Forum Nokia Wiki


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: Image:PrototypeString.zip. 安装时,将后缀.zip改为.wgz。

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

相关主题

参考

  • Prototype主页 [1]
  • 使用prototype [2]
  • 样例WRT应用下载[3]
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX