Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除段落中的特定单词,并使用JS&;修改其后面的第一个单词;正则表达式?_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 删除段落中的特定单词,并使用JS&;修改其后面的第一个单词;正则表达式?

Javascript 删除段落中的特定单词,并使用JS&;修改其后面的第一个单词;正则表达式?,javascript,jquery,regex,Javascript,Jquery,Regex,通过使用JavaScript/jQuery和RegEx,我想从下面的段落中删除单词“Integer”的所有实例,删除单词后的第一个单词应该大写 Lorem ipsum dolor sit amet,是一位杰出的献身者。南埃利特 马萨,图皮斯维尔的马克西姆斯,维韦拉·亚库利斯·尼塞尔。丘脑内侧核 欧盟的梅特斯·波苏尔(metus posuere),一个法门Integerquis nunc neque。 白背箭的直径。Nunc placerat 苏利西图丁·普卢斯。Proin mattis,quam

通过使用JavaScript/jQuery和RegEx,我想从下面的段落中删除单词“Integer”的所有实例,删除单词后的第一个单词应该大写

Lorem ipsum dolor sit amet,是一位杰出的献身者。南埃利特 马萨,图皮斯维尔的马克西姆斯,维韦拉·亚库利斯·尼塞尔。丘脑内侧核 欧盟的梅特斯·波苏尔(metus posuere),一个法门Integerquis nunc neque。 白背箭的直径。Nunc placerat 苏利西图丁·普卢斯。Proin mattis,quam sit amet pellentesque blandit, 人类的前庭和前庭整数ligula 泰卢斯,马克西姆斯·奥奇奎斯,尤伊斯莫·康塞奎特·努拉

到目前为止,我尝试删除所需单词:

var modified = $(".paragraph").html();

modified = modified.replace(/Integer\s/g, '');

但在那之后,我不知道如何动态地访问下一个单词(从上面的示例文本单词:“quis”和“ligula”)并将其设置为大写。需要注意的一点是:需要删除的单词总是相同的,但单词after总是不同的。

不是正则表达式,而是这一行可以满足您的目的

let str = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam elit 
massa, maximus in turpis vel, viverra iaculis nisl. Nullam pulvinar mi eu metus 
posuere, a porta ligula feugiat. Integer quis nunc neque. Etiam sollicitudin diam 
in dolor sagittis pellentesque. Nunc placerat sollicitudin purus. Proin mattis, 
quam sit amet pellentesque blandit, urna erat mollis sapien, et vestibulum nunc 
mised orci. Integer ligula tellus, maximus id orci quis, euismod consequat nulla.`;

也许有一种直接替换的方法,但我可能会这样做:

let textResult;
do {
    textResult = /Integer\s(.)/gs.exec(modified);
    if (!textResult || !textResult[1]) {
        textResult = null;
        continue;
    }
    modified = modified.replace('Integer ' + textResult[1], textResult[1].toUpperCase());
} while (!!textResult);

要确保每次删除整数后都能得到大写单词,请使用以下命令:

modified=modified.replace(/Integer\s+(\w)/g,函数(fullMatch,capturedGroup){
返回capturedGroup.toUpperCase();

});实际字符串中是否存在
*
?也许
Integer\s+([a-z])
就足够了,然后像
,大写的函数('$1')对不起,
*
,这是复制/粘贴的“残留物”。我会考虑你的建议。谢谢你,这个答案就是我所需要的。工作起来很有魅力。
let textResult;
do {
    textResult = /Integer\s(.)/gs.exec(modified);
    if (!textResult || !textResult[1]) {
        textResult = null;
        continue;
    }
    modified = modified.replace('Integer ' + textResult[1], textResult[1].toUpperCase());
} while (!!textResult);