Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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 替换正则表达式替代_Javascript_Regex - Fatal编程技术网

Javascript 替换正则表达式替代

Javascript 替换正则表达式替代,javascript,regex,Javascript,Regex,目前我使用的是: 函数parseFormattext{ text=text.replace/[\\\\]{2}[^\\\\\]+[\\\\\]{2}/g,$1'; text=text.replace/[\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{2}/g,'$1'; text=text.replace/[\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{1}/g,'$1'; text=te

目前我使用的是:

函数parseFormattext{ text=text.replace/[\\\\]{2}[^\\\\\]+[\\\\\]{2}/g,$1'; text=text.replace/[\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{2}/g,'$1'; text=text.replace/[\*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{1}/g,'$1'; text=text.replace/[\~]{2}[^\~]+[\~]{2}/g,'$1'; 返回文本; } 和解析:agent_messages.forEache=>e.innerHTML=parseFormate.innerHTML

我希望在上面使用其他类型的组合

比如:

!@ 大胆的 $%^用于下划线 &*斜体字 _+删除线 所以对于粗体,应该是:!@粗体!@=大胆的


有人能帮我写这段代码吗?这相当复杂。

您的方法的一个问题是使用新的分隔符,当您获得此输入时会发生什么

正常!@粗体和*粗体斜体!@斜体和*正常

这将是您的输出:

正常粗体粗体斜体正常

由于标记交叉,这是无效的HTML

相反,您需要某种解析器。一个非常基本的方法是查找单个有效标记,然后递归地重新解析其内容。例如:

常量标记={ !@:b, $%^:u, &*:我, _+:del }; 常量regexSanity=/[-[\]{}*+,\\^$\124;\ s]/g;//https://stackoverflow.com/a/9310752/507674 const regex=new RegExp +Object.keystags.map 令牌=>token.replaceregexSanity,'\\$&' .join |+.*?\\1, G 常量解析=输入=> 输入。替换 正则表达式, _,标记,内容=>`${parsecontent}` ;
console.logparsenormal!@粗体和*粗体斜体!@斜体&*正常;这是在分析降价吗?你考虑过标记解析器吗?不是每次都分配文本,而是可以链接所有这些调用。这里的反斜杠太多了。在fast中,所有这些都是不必要的。我找到了一个可能适合您的解析器:遗憾的是,我无法安装任何其他类型的脚本/代码。我必须这样做。这就是为什么我发布这个问题,而不是使用showdownjs作为例子。我是有限的:@MLarionovHi Niet,你的剧本超级棒!非常感谢您提供有效的答案:。我不明白人们为什么要把我的问题和你的答案放在心上。但这并不重要。我有一个复杂的问题,而你却完美地解决了。它看起来很有活力!我喜欢它。