Javascript 在单词的前n个字符下面划线

Javascript 在单词的前n个字符下面划线,javascript,html,css,Javascript,Html,Css,我想在链接中的单词的前几个字符下面加下划线,类似于CSS第一个字母的工作方式,但字母数量是可变的。或者,在单词的前半部分加下划线可能会很有用。有什么方法可以相对简单地使用HTML、CSS或Javascript实现这一点 (我不是开发人员,我愿意向开发团队提供所有建议;) A. a、 下划线{ 文字装饰:无; } .下划线跨度{ 颜色:绿色; 文字装饰:下划线; } var links=document.links; var-chars=3; 对于(var i=0,total=links.

我想在链接中的单词的前几个字符下面加下划线,类似于CSS第一个字母的工作方式,但字母数量是可变的。或者,在单词的前半部分加下划线可能会很有用。有什么方法可以相对简单地使用HTML、CSS或Javascript实现这一点

(我不是开发人员,我愿意向开发团队提供所有建议;)






A. a、 下划线{ 文字装饰:无; } .下划线跨度{ 颜色:绿色; 文字装饰:下划线; } var links=document.links; var-chars=3; 对于(var i=0,total=links.length;i-1){ var text=links[i].innerHTML; 文本=“”+ text.substring(0,字符)+ '' + 文本。子字符串(字符); links[i].innerHTML=text; } }

编辑:单词

var links = document.links;
var chars = 3;

for (var i = 0, total = links.length; i < total; i++) {
    if (links[i].className.indexOf('underline') > -1) {
        var text = links[i].innerHTML.split(' ');
        for (var p = 0, words = text.length; p < words; p++) {   
            text[p] = '<span>' +
                text[p].substring(0, chars) +
                '</span>' +
                text[p].substring(chars);
        }
        links[i].innerHTML = text.join(' ');
    }
}
var links=document.links;
var-chars=3;
对于(var i=0,total=links.length;i-1){
var text=links[i].innerHTML.split(“”);
对于(var p=0,words=text.length;p

编辑:作为一项功能

var links = document.links;
var chars = 2;

for (var i = 0, total = links.length; i < total; i++) {
    if (links[i].className.indexOf('underline') > -1) {
        setUnderline(links[i], chars);
    }
}

function setUnderline(link, chars) {
    var text = link.innerHTML.split(' ');
    for (var p = 0, words = text.length; p < words; p++) {   
        text[p] = '<span>' +
            text[p].substring(0, chars) +
            '</span>' +
            text[p].substring(chars);
    }
    link.innerHTML = text.join(' ');
}
var links=document.links;
var-chars=2;
对于(var i=0,total=links.length;i-1){
设置下划线(链接[i],字符);
}
}
函数setUnderline(链接、字符){
var text=link.innerHTML.split(“”);
对于(var p=0,words=text.length;p

我不确定您是要替换链接中的前N个字母,还是替换链接中每个单词的前N个字母。如果是后者,请尝试替换正则表达式

new RegExp("\b\w{1," + N + "}", "g")
使用适当的替换件,如

function(a) { return "<u>" + a + "</u>"; }
函数(a){return”“+a+”;}
下面是一个例子:

你可以简单地把
和#818
在任何单词后面加下划线,都是HTML代码

它变成:

终点

但是,您可以创建一个JavaScript函数来为您执行此操作,请参见:

function underlineWord(pos,str){
  str = str.substring(0,pos) + str[pos] + "&#818;" + str.substring(pos+1,str.length);
  return str;
}
这样,如果执行:

underlineWord(0,"string");
你将有:


s̲tring

Vanilla JS或lib会像jQuery/mooTools那样工作吗?为什么“开发团队”不在工作?这是一个交互概念,我想在占用宝贵的开发人员时间之前进行评估。(并不意味着你的时间没有价值…)只是要知道这是一个不寻常的陈述,但不一定是一个与潜在问题相关的问题。见我的答案@RussBB我想我得到了你想要的汉克斯·贾里德,很接近,但实际上,我希望找到一种方法,在链接中每个单词的前n个字母下面划线。请参见编辑。注:必须围绕规范设计更完整的解决方案;对于概念验证,这应该有效。它不一定是最复杂的请求,这取决于它必须处理的实际HTML。jQuery也会让它更直截了当。非常感谢。所以这是可行的,这就是我想要的。我将按照您的建议查询jQuery。这在jQuery中也是一样的:选择部分主要是简化。注意,此示例实际上将使用
$.text()
标记中删除标记。
underlineWord(0,"string");