求JavaScript代码,会的来,最好是正则~!!!

来源:百度知道 编辑:UC知道 时间:2024/05/09 22:42:58
能把未结束的标签自动结束,并且再把结束的添加上新的头。

把鼠标定在多行文本域里面任意位置

一点按钮,光标的位置出现了[abc](这篇文章是HTML代码)

[abc]之前肯定有未结束的标签

要在[abc]之前结束它

还要再[abc]之后添加上新的标签,只添加头

例如:<font>abcdefghijklmnopqrstuvwxyz</font>

光标移动到j之后,点按钮

新的文章就是

<font>abcdefghij</font>[abc]<font>klmnopqrstuvwxyz</font>

会有很多标签...

^_^ 其实应该明白我要表达什么~~~!!!呵呵 大侠帮忙~!!好使了 再加分
[abc]是固定的,主要判断的是光标之前有什么未结束的标签,不是正则没关系,只要能有效果就行。
一个多行,一个按钮,一点按钮,就是我说的效果就行。

feixing345 大侠 我会给你加分的,现在有一个小小的问题,就是:1.会有很多标签,现在只能结束最外的
2.光标处可以不用判断,会有其他的程序加的,能不能把光标之前的值都alert出来呢,我需要
3.如果<a>11[abc]22</a>如果这样的标签在最后面点的话还会出个</a>[abc]<a> 没有用 应该直接出 [abc] 因为在光标之前的标签已经结束了,只对光标之前的值判断就对了
我会给你加分的

给你一个答案吧,不过我这个答案也不是很准确,只能正确运行在IE下,在FF和OPERA下不能运行,因为只有IE才支持DHTML的语法:

我在IE7下亲测通过
<html>
<body>
<textarea rows="50" cols="100" id="box" onclick="clickHandler()">fasd<font>fsdafsdafsafsadsdfsdfasfsafd</font>sadfsadfsaf</textarea>
<script language="javascript">
var yourString = "[abc]";

function clickHandler(){

var textValue = document.getElementById('box').value;
var rng = event.srcElement.createTextRange();
rng.moveToPoint(event.x,event.y);
rng.moveStart("character",-event.srcElement.value.length);

var preValue = textValue.substring(0, rng.text.length);
var nextValue = textValue.substring(rng.text.length);

if(preValue.match(/<\w+>/) == null) {
ret