js中查询一段文本并选中查到的所有匹配能实现吗?
来源:互联网 发布:道尔顿和怡口 知乎 编辑:程序博客网 时间:2024/04/30 01:51
有一个csdn网友遇到了这样的问题,想在一段文本中查询,然后选中匹配了的所有内容。但是单纯从需求来讲,我认为是无法实现的。
我给出的解释是:
在文本框中同时选中不连续的片断是不可能的。
但是如果是非文本框中的文本,可以通过改变字体颜色和背景的方法来模拟不连续片断的同时选中效果。
我得代码是:
<script language="JScript">var str = ""
var found = false
function searchKeyWords()
{
var keyWord=document.getElementById("txtKeyWord").value;
if(keyWord=='') return;
var content=document.getElementById("txtContent").innerText;
var strPat=eval("/" + keyWord + "/g");
var str=content.replace(strPat,"<span style='color:#ff0000;font-weight:bold;'>" + keyWord + "</span>");
if(str!='')document.getElementById("txtContent").innerHTML=str;
}
</script>
<div id="txtContent" style='border-width:1'>
19xx年,第一台计算机问世, 这是计算机时代的开始
</div>
<br/><br/>
<Input type="text" id="txtKeyWord" size="10" value="计算机">
<input type="button" value=" search… " onclick="searchKeyWords()">
另外 昵称为 无法界定 的网友给了另一种答案,他的程序模拟普通的文本搜索程序,一次搜索只找到一个匹配并选中当前的一个搜索项,文本放到文本框中。代码如下:
<script language="JScript">
var str = ""
var found = false
function searchKeyWords(keyWord)
{
if (str=="" ||(found && str.indexOf(keyWord)<0) )
str = txt.value
if(str.indexOf(keyWord) >=0 )
{
var index0 = str.indexOf(keyWord)
var index1 = keyWord.length
var rng = txt.createTextRange();
rng.collapse(true)
rng.moveStart("character", index0)
rng.moveEnd("character", index1)
rng.select()
str = str.replace(keyWord, String(Math.pow(10,index1)-1))
found = true
}
}
</script>
<input type="text" style="width:360" name="txt" value="19xx年,第一台计算机问世,这是计算机时代的开始"><input type="button" value="click" onclick="searchKeyWords('计算机')">
我的结论就是:在文本框中选中不连续的片断是不可能的。只能放弃或者用其他方法模拟。
- js中查询一段文本并选中查到的所有匹配能实现吗?
- js获取checkbox中所有选中值及input后面所跟的文本
- js实现选中所有的checkbox
- php匹配文本中所有的URL并替换为超链接
- 手机短信内容能查到,别人删除的手机短信内容还能查到吗
- js中替换所有匹配的字符串
- 一段Jdbc连Oracle的程序,并实现数据查询.
- 写一段JDBC连接的程序,并实现数据查询。
- [.Net2.0]如何实现Winform中CheckedListBox的全选与取消和读取所有选中项的文本
- js 选中当前的文本
- js获取选中的文本
- js实现span文本选中效果
- hibernate新增后数据库能查到数据但跳转查询页面后还是原来的数据
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- 替换字符串中所有匹配的字符串 js
- 一段实现除去字符串中重复的js代码
- 一段实现除去字符串中重复的js代码
- 统计报表(用ROLLUP 汇总数据)
- 自动取款机上的 Windows XP ?!
- 什么叫做NP问题,什么叫做NPC问题?
- 求职招聘网站
- VC6.0(SP6)编译xvid
- js中查询一段文本并选中查到的所有匹配能实现吗?
- 自助服务设备监控系统Fsb-Onmonitor [摘]
- SQL Server2000测试题
- 新利EagleEye信息平台保障系统(服务器监控系统)[摘]
- 一段动态滚动公告栏的js代码
- JDOM研究
- 在一个js文件中包含另一个js文件的方法
- 红旗LINUX 桌面4.0的硬盘安装和问题
- 经理人必看的八大管理网站