gpt4 book ai didi

JavaScript 匹配用户选择的整个字符串,跳过电子邮件和 URL

转载 作者:行者123 更新时间:2023-12-03 04:06:48 25 4
gpt4 key购买 nike

我尝试使用正则表达式来匹配段落中的整个字符串(用户选择的,可以是一个单词或多个单词)。

var str = 'myname this is my myname 18 my email is MyName@email.com 40 another email is support@MYNAME.com.au. 78 and my site is www.myname.com.au. 119 myname. 142 ..myname 154 [myname] 167 and myname\'s 184 mynamebefore 198 aftermynames 215 "myname" 231 \'myname\' 244 lastmyname';

function match(text, str) {
//need to change
var pattern = '(?=^|\\s|\\b)(' + text + ')(?=$|\\s|\\b)';

var regexp = new RegExp(pattern, "ig");
var idx = 0;
while ((match = regexp.exec(str)) != null) {
var offsetStart = parseInt(match.index);
console.log("--["+idx+"] ["+offsetStart+"]- textnode " + JSON.stringify(match, null, ' '));
idx++;

}
}


var selectText = 'myname';
match(selectText, str);

我想要的是看到下面的字符串已经在字符串中突出显示。

'我的名字这是我的我的名字 18 我的电子邮件是 MyName@email.com 40 另一个电子邮件是 support@MYNAME.com.au。 78,我的网站是 www.myname.com.au。 119 我的名字。 142 ..我的名字 154 [我的名字] 167 和我的名字\'s 184 我的名字之前 198 在我的名字之后 215 "我的名字"231\'我的名字\' 244 我的姓氏'

跳过电子邮件,跳过URL,返回已匹配的字符串,可以用空格或任何其他字符[^a-zA-Z0-9](例如[],'',“”或's)包裹。

所有文本均为粗体,如我的名字将返回。

最佳答案

首先使用正则表达式匹配字符串"[^@.]"+text+"[^@.]"

然后每个项目如代码 forEach 所示。

然后返回字符串。

检查代码片段

var str = 'myname this is my myname 18 my email is MyName@email.com 40 another email is support@MYNAME.com.au. 78 and my site is www.myname.com.au. 119 myname. 142 ..myname 154 [myname] 167 and myname\'s 184 mynamebefore 198 aftermynames 215 "myname" 231 \'myname\' 244 myname';

function match(text, str) {
var re=new RegExp("([^@a-zA-Z0-9]|^)"+text+"(\.\s|[^@a-zA-Z0-9.])","igm");
str.match(re).forEach(function(i,p){
str=str.replace(i,"<b>"+i+"</b>");
});
return str;
}

var selectText = 'myname';
document.writeln("Before<br /><br />"+str);

document.write("<br /><br />After<br /><br />"+match(selectText, str));

关于JavaScript 匹配用户选择的整个字符串,跳过电子邮件和 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com