小编Mir*_*a M的帖子

Velocity RegEx用于不区分大小写的匹配

我想在Velocity模板中实现一种词汇表(使用Javascript).以下是用例:

  • 有大量项目,其描述可能包含对预定义术语的引用
  • 有一个定义的术语列表 - > allGlossary
  • 我想自动查找并标记allGlossary列表中出现在所有项目描述中的所有项目

例:

allGlossary = ["GUI","RBG","罚款","颜色范围"]

项目描述:接口(GUI)应仅使用预定义的RGB颜色范围生成.

在运行脚本之后,我希望描述看起来像这样:"接口(GUI)只能使用预定义的RGB 颜色范围生成."

注意:即使描述(de fine d)中出现"fine" ,也不应标记.

我想把每个项目的描述分成单词然后我想念所有超过1个单词的词汇表项目.我目前的想法是在每个描述中查找列表中的每个项目,但我有以下限制:

  • 我需要找到2个列表中的确切项目的匹配项(单个和多个单词)
  • 搜索必须不区分大小写
  • 找到的项目可能位于文本的开头或结尾,并用各种符号分隔:空格,逗号,句点,括号,括号等.

我有以下代码,但不是不区分大小写的:

#set($desc = $item.description)
#foreach($g in $allGlossary)
    #set($desc = $desc.replaceAll("\b$g\b", "*$g*"))
#end##foreach
Run Code Online (Sandbox Code Playgroud)

有人可以帮助使这个不区分大小写吗?或者有没有人有更好的方法来做到这一点?

谢谢!

更新:基于下面的答案,我尝试在Velocity Template页面中执行以下操作:

#set($allGlossary = ["GUI","RGB","fine","Color Range"])
#set($itemDescription = "The interface (GUI) shall be generated using only a pre-defined RGB color range.")

<script type="text/javascript">
    var allGlossary = new Array();
    var itemDescription = "$itemDescription";
</script>

#foreach($a in $allGlossary) …
Run Code Online (Sandbox Code Playgroud)

javascript regex velocity

5
推荐指数
1
解决办法
652
查看次数

NSIS功能 - 退出安装程序

在我的NSIS安装程序中,我有一个自定义功能,用户有2个单选按钮.选择第一个并单击"下一步"将安装该软件.选择第二个(浏览)并单击"下一步"将显示安装介质上的HTML文件.

一切正常但我想在用户选择浏览选项并显示HTML页面时实际退出安装程序.知道怎么做吗?

在我的自定义页面中,我有这个:

    ${NSD_CreateRadioButton} 70 95 40% 6% "Install the Manuals to your PC"
        Pop $hwnd
        ${NSD_AddStyle} $hwnd ${WS_GROUP}
        ${NSD_SetUserData} $hwnd "true"
        ${NSD_OnClick} $hwnd RadioClick
    ${NSD_CreateRadioButton} 70 175 40% 6% "Browse the $MEDIUM content"
        Pop $hwnd
        ${NSD_SetUserData} $hwnd "false"
        ${NSD_OnClick} $hwnd RadioClick
Run Code Online (Sandbox Code Playgroud)

我有一个获取数据的函数:

Function RadioClick
    Pop $hwnd
    ${NSD_GetUserData} $hwnd $inst
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

最后,一个用这些数据填充的函数(开始安装或浏览):

Function post
    ${If} $inst == ""
        MessageBox MB_OK "Please specify an option"
        Abort
    ${ElseIf} $inst == false
        ExecShell "open" "$EXEDIR\TechPubList_ForPC\$START_PUB"
        Abort    
    ${EndIf}
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

在实际退出安装程序的"Abort"之后,我需要放入最后一个函数.

欢迎任何帮助!谢谢!

nsis

3
推荐指数
1
解决办法
8371
查看次数

标签 统计

javascript ×1

nsis ×1

regex ×1

velocity ×1