标签:
问题描述:
如图中所示,当我单击按专业搜索时,筛选出专业中包含有关键字的专业,并且讲输入的关键字用其他颜色区分开来。结果中每个学校和每个专业都是链接<a>.
实现方法:
1.首先找到专业这一列:
2.编写高亮方法:
3.同时这里备注一下RegExp方法:
RegExp是个动态类。
1、初始化RegExp类的两种方法
RegExp(re:String, flags:String) ---允许使用两个字符串来构造正则表达式。 一个字符串定义正则表达式的模式,另一个字符串定义正则表达式中使用的标志。
re:正则表达式的模式(也称为构造函数字符串)。 这是正则表达式的主要部分(“/”字符之间的部分)。
flags:正则表达式的修饰符。 其中包括:
g
-- 使用 String 类的 replace()
方法时,指定此修饰符可替换所有匹配项,而不只替换第一个匹配项。 此修饰符对应于 RegExp 实例的 global
属性。i
-- 计算正则表达式时不 区分大小写。 此修饰符对应于 RegExp 实例的 ignoreCase
属性。s
-- 点 (.
) 字符与换行符相匹配。 请注意,此修饰符对应于 RegExp 实例的 dotall
属性。m
-- 尖号 (^
) 字符和美元符号 ($
) 在换行符之前和之后匹配。 此修饰符对应于 RegExp 实例的 multiline
属性。x
-- 忽略 re
字符串中的空白字符,所以您可以编写更加易读的构造函数。 此修饰符对应于 RegExp 实例的 extended
属性。创建RegExp 实例:
var re1:RegExp = new RegExp("bob", "i");//通过构造函数
var re2:RegExp = /bob/i; //直接字面值创建
如果遇到有‘/‘符号的可以使用‘/‘来转义符号,例如:
var re2:RegExp=new RegExp ("/ab","g");
var res:RegExp=/\ab/g;//使用反斜杠来代替
2、lastIndex属性
指定字符串中开始进行下一次搜索的索引位置。 此属性影响 RegExp 类的 exec()
和 test()
方法。 但是 String 类的 match()
、replace()
和 search()
方法会忽略 lastIndex
属性,并从字符串的起始处开始进行所有搜索。 如果下一个字符没有和正则表达式匹配,那么它会跳到下一个字符查找,直到查找到匹配的字符。例如下面的例子,
var re:RegExp=/\w/g;//‘\w‘表示与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_ ]"。
var str:String="a b c_ d";
trace(re.lastIndex);//0----开始搜索第一个字符,默认是为-1的
trace(re.test(str));//true test用来返回是否和正则表达式匹配
trace(re.lastIndex);//1 字符时‘ ‘空格,没有匹配,所以搜索下一个字符
trace(re.test(str));//true 字符时b,匹配到
trace(re.lastIndex);//3 字符时c,可以匹配
trace(re.test(str));//true 字符是c,下一个字符是空格不匹配
trace(re.lastIndex);//5 下一个字符时‘_‘可以匹配
trace(re.test(str));//true 字符是‘_‘,下一个字符时空格,不匹配
trace(re.lastIndex);//6
trace(re.test(str));//true 字符是d,下一次没有字符了
trace(re.lastIndex);//8
//上面的例子就是在验证这一句话:如果搜索与子字符串相匹配,lastIndex
属性将发生更改以与该匹配项的末尾位置相匹配。
在给定的字符串 str
中执行正则表达式搜索。
如果没有 为正则表达式设置 g
(global
) 标志,则从字符串的开头位置(索引位置 0)开始搜索;搜索将忽略正则表达式的 lastIndex
属性。
如果为正则表达式设置 了 g
(global
) 标志,将从正则表达式的 lastIndex
属性指定的索引位置开始搜索。 如果搜索与子字符串相匹配,lastIndex
属性将发生更改以与该匹配项的末尾位置相匹配。
参数
str:String
— 要搜索的字符串。
返回
Object
— 如果没有匹配项,则返回 null
;否则,将返回具有以下属性的对象:
index
-- 匹配的子字符串在字符串中的字符位置input
-- 字符串 (str
)例如:
标签:
原文地址:http://www.cnblogs.com/lovely_life/p/4602492.html