gpt4 book ai didi

javascript - 检查 javascript replace() 是否为空

转载 作者:行者123 更新时间:2023-11-30 05:39:30 24 4
gpt4 key购买 nike

我一直在尝试制作一个简单的 bbcode 解析器,当代码正确时它工作得很好但是当没有代码时我不知道如何处理它。

这是我的代码:

function BBCodeHTML(text) {
//WEBSITE 1
code = '<iframe width="10" height="10" src="https://www.videoWebsite.com/video/$1"></iframe>';
text = text.replace(/\[videoTag\](.*?)\[\/videoTag\]/g, code);
return text;
//WEBSITE 2
code = '<iframe width="10" height="10" src="https://www.videoWebsite2.com/video/$1"></iframe>';
text = text.replace(/\[videoTag2\](.*?)\[\/videoTag2\]/g, code);
return text;
[...]
}

问题是,如果用户只是执行[videoTag][/videoTag]$1 东西(我不知道怎么调用它)是空的嵌入仍然显示(没有任何视频)。

无论如何我可以检查 $1 是否为空,如果不是则用嵌入替换?

类似于“if $1 = empty { do nothing } else { embed }

我尝试搜索答案,但 $1 是空的等等。

如果任何 mod 知道这个问题的更好标题,请随时编辑。

最佳答案

试试这个正则表达式:

var r = /\[tag\](?!\[\/tag\])(.*?)\[\/tag\]/g;

假设空格被认为是“空的”:

var r = /\[tag\](?! *\[\/tag\])(.*?)\[\/tag\]/g;

使用示例:

'[tag]  [/tag][/tag][tag]content[/tag]'.replace(r, '<tag>$1</tag>');
// "[tag] [/tag][/tag]<tag>content</tag>"

正则表达式:

\[tag\]           "[tag]"
(?! *\[\/tag\]) not followed by zero or more whitespaces and "[/tag]"
(.*?) any char, zero or more times
\[\/tag\] "[/tag]"

关于javascript - 检查 javascript replace() 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569848/

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