createRange 中发现findText这个方法,找了篇文章收藏,谢过原作者
http://blog.csdn.net/jiangqiaohua/archive/2008/10/17/3091979.aspx
==============
呵呵,一直以来都是去别人BLOG搜刮资料
这次偶也写一点分享一下。
最近在做飞腾浏览器(FlyIe)的的查找功能,(打下广告@_@)
关键字高亮和向上向下查找都差不多了
遇到了全字匹配和区分大小写的问题。
后来到MSDN一查,原来findText()方法都有。
findText Method
Searches for text in the document and positions the start and end points of the range to encompass the search string.
Syntax
bFound = TextRange.findText(sText [, iSearchScope] [, iFlags])
Parameters
sText Required. String that specifies the text to find.
iSearchScope Optional. Integer that specifies the number of characters to search from the starting point of the range. A positive integer indicates a forward search; a negative integer indicates a backward search.
iFlags Optional. Integer that specifies one or more of the following flags to indicate the type of search: 0 Default. Match partial words.
0 Default. Match partial words.
1 Match backwards.
2 Match whole words only.
4 Match case.
131072 Match bytes.
536870912 Match diacritical marks.
1073741824 Match Kashida character.
2147483648 Match AlefHamza character.
iFlags 参数为0表示部分匹配,比如
@a,@ADD,@a Abba @AB 超找@a 为四个
iFlags 参数为1表示查找最后一个关键字,比如
@a,@ADD,@a Abba @AB 查找@a 就到 @AB 这里去了
iFlags 参数为2表示全字匹配,比如
@a,@ADD,@a Abba @AB 查找@a 就到 只有一个就是 @a
iFlags 参数为3表示全字匹配,比如
@a,@ADD,@a Abba @AB 查找@a 就到 只有一个就是 @a
iFlags 参数为4表示大小写匹配,比如
@a,@ADD,@a Abba @AB 查找a 就到 只有三个
iFlags 参数为5表示按字节匹配
剩下几个参数不知道什么意思,也不重要就不说了。
那假如即要全字匹配又要大小写匹配怎么办呢?
很简单
If oRange.findText(nWord, , 2) Then
If oRange.findText(nWord, , 4) Then
nPosBM = oRange.getBookmark
'Call oRange.moveToBookmark(nPosBM)
Call oRange.Select
FindWord2 = True
End If
Else
'Set nPosBM = Nothing
nPosBM = vbNullString
FindWord2 = False
End If
加个IF 循环就好了
其他参数就靠其他大虾解释了
This example creates a TextRange over the body of the document, and then uses the findText method to search for text with various flag combinations. The results are indicated in the example code comments.
Copy Code
<HTML>
<BODY>
Leonardo da Vinci was one of the great masters of the High
Renaissance, especially in painting, sculpture, architecture,
engineering, and science.
</BODY>
</HTML>
<SCRIPT>
var oRange = document.body.createTextRange();
// record the current position in a bookmark
var sBookMark = oRange.getBookmark();
// true - case-insensitive and partial word match
oRange.findText('leo');
// reset the range using the bookmark
oRange.moveToBookmark(sBookMark);
// false - matches whole words only
oRange.findText('engineer', 0, 2);
oRange.moveToBookmark(sBookMark);
// false - case-sensitive
oRange.findText('high', 0, 4);
oRange.moveToBookmark(sBookMark);
// true - case-sensitive and matches whole words
oRange.findText('Leonardo', 0, 6);
// the degenerate case
oRange.moveToBookmark(sBookMark);
// make the range degenerate
oRange.collapse();
// false - must specify large character count in this case
oRange.findText('Leonardo', 0, 6);
// true - no third parameter passed, so no count needed
oRange.findText('Leonardo');
// true - a large count covers the range
oRange.findText('Leonardo', 1000000000, 6);
</SCRIPT>
分享到:
相关推荐
在IT行业中,C++是一种强大的、面向对象的编程语言,被广泛用于系统软件、应用软件、游戏开发以及高性能计算等...下载并研究这个程序,不仅可以学习到C++的实际应用,还可以提升在文件系统操作和程序设计方面的技能。
win32 RichEdit控件支持大量单词。 我想在这种控件中找到一些字符串。 我在msdn上找到了win32消息EM_FINDTEXT。 如果找到了特殊字符串,则返回值为控件文本的索引。 我试过了,但是不起作用。 我...
要实现查找功能,你需要利用`FindText`方法。这个方法允许你在RichEdit控件的文本中搜索指定的字符串。例如: ```delphi var StartPos: Integer; begin StartPos := RichEdit1.SelStart; while (StartPos ) do ...
document.Content.Find.Execute(FindText=search_str, ReplaceWith=replace_str, Replace=win32.constants.wdReplaceAll) document.Save() word_app.Quit() # 调用函数,替换Word中的内容 replace_word_content...
- `FindText(String text, FindOptions options)`: 搜索表格中的文本,提供多种查找模式。 - `CopyRange(int startRow, int startCol, int endRow, int endCol) / PasteRange(int destRow, int destCol)`: 复制和...
13. findText: 在文本中搜索指定的文本,并将TextRange的起始和结束位置设置为包含搜索字符串的范围。 使用TextRange对象的基本步骤一般包括: 1. 创建TextRange对象。 2. 设置TextRange对象的起始点和终点。 3....
`String`类提供了丰富的成员方法,如`IndexOf`、`Replace`等,用于查找和替换字符串中的特定字符或子串。 1. **查找操作**:在VB.NET中,`IndexOf`方法用于查找字符串中第一次出现特定字符或子串的位置。例如,`...
在上面的代码中,我们使用indexOf方法来查找源字符串srcText中的指定字符串findText,并统计出现的次数。每次找到后,我们都会增加索引index,以便继续查找下一个出现的位置。 优缺点比较 使用正则表达式和循环...
private void FindText() { string searchText = "关键词"; int startPosition = 0; int searchLength = searchText.Length; RichTextBoxFinds options = RichTextBoxFinds.None; // 默认查找选项 // 查找并...
在Android开发中,`TextView`和`EditText`是两个非常重要的UI组件,它们与文本处理密切相关。`TextView`主要用于展示静态文本,...对于`FindText02`这样的代码资源,开发者可以通过学习和研究来进一步提升自己的技能。
- 查找和替换:可以使用 TMemo 的 FindText 方法查找特定文本,ReplaceText 方法进行替换。 4. **事件驱动编程** - Delphi 使用事件驱动模型,当用户进行某种操作(如点击菜单项)时,对应的事件处理器会被触发。...
TextFind2是用于搜索TXT文件的程序。 更具体地说,用于在书中搜索,其中包含写成一百四十年(140)的数字。 它使用MMX指令一次比较8个字符。 它还能够提取每一行,并且您可以将其另存为TXT或RTF文件。...
例如,可以调用`HighlightText`方法高亮文本,`GoToBookmark`方法跳转到书签,或`FindText`方法实现全文搜索。 6. **打印功能**:如果需要打印PDF文档,可以使用`Print`方法,其中可以设置打印范围、页面方向、副本...
在IE4中,使用了createTextRange方法来创建一个文本范围对象,然后使用findText方法来搜索页面中的内容。 结论 本资源提供了实现JS页面内容搜索功能的代码,类似于Ctrl+F功能。该功能可以在页面中搜索指定的内容,...
在实现这个过程时,主要是先选择整个文档,然后使用 Find 的 Execute 方法查找指定字符串并替换为相应字符串。下面是一个使用文档(Document)对象的 Content 属性选择整个文档的示例代码: ```csharp public bool ...
这里,`Documents.Open` 方法用于打开文件,而 `ConnectTo` 方法用于将 Delphi 的 `TWordDocument` 组件连接到 Word 的当前文档。 4. **替换文本**: 要在 Word 文档中替换特定字符串,可以使用 `Range.Find....
2. 调用findText方法来搜索关键字,这个方法会在文档中查找给定文本的第一个匹配项。 3. 如果找到匹配项,则继续使用pasteHTML方法将匹配到的文本用HTML标签包裹起来,比如在这个例子中,使用了带有黄色背景的标签。...
doc.Content.Find.Execute(FindText: "old_text", ReplaceWithText: "new_text", Replace: WdReplace.wdReplaceAll); ``` 这将替换文档中所有出现的"old_text"为"new_text"。 ### 4. 图片转文字(OCR) 虽然`...
//本浏览器采用IE内核,多标签,多线程的一个浏览器,带有收藏夹功能。 // //可以查看页面源文件和网页链接状态的功能(可供分析网站的路径),具备// //常用的门户引擎搜索功能。 // //***************************...