C# 测试链接的文本

C# 测试链接的文本,c#,javascript,regex,model-view-controller,C#,Javascript,Regex,Model View Controller,更新 我在资源文件中有一个正则表达式,它通过@Action方法呈现,该方法获取所有资源字符串并输出一个脚本: @model IEnumerable<LocalizationModel> ; (function (window) { var l = { @foreach(LocalizationModel file in Model) { @:@file.Title: { foreach(var entry in file.Ite

更新

我在资源文件中有一个正则表达式,它通过@Action方法呈现,该方法获取所有资源字符串并输出一个脚本:

@model IEnumerable<LocalizationModel>
; (function (window) {
    var l = {
    @foreach(LocalizationModel file in Model)
    {
        @:@file.Title: {
        foreach(var entry in file.Items)
        {
            @:@entry.Key: @Html.Raw(@HttpUtility.JavaScriptStringEncode(entry.Value.ToString(), true)),
        }
        @:},
    }
    };

    // expose the l object to the global namespace.
    window._l = l;
})(window);
然后,在某个地方,我确实:

var pattern = new RegExp(_l.Regex.WebLink);
console.log(pattern.test(input.val()));
但是我在创建RegExp时遇到了一个“无效量词”错误

怎么了?

我现在认为unicode字符可能是这里的突破性差异?

不确定
\u l.Regex.Link
\u l.Regex.WebLink
是什么,但您正在测试的是一个真正的“\u l.Regex.Link”而不是变量的Regex模式。如果它们已经是RegExp对象,只需删除
/
s,如果它们是字符串,则首先创建RegExp对象:

var pattern = new RegExp( _l.Regex.Link );
console.log( pattern.test( p ) );

这里有个线索
/\u l.Regex.Link/.test(“\u l.Regex.Link”)//true
当我尝试使用提供的表达式创建这样的RegExp对象时,它会生成“SyntaxError:invalid quantifier”,您必须显示完整的代码。正则表达式字符串中存在错误。开始处的
(?i)
似乎是罪魁祸首。删除它可以使正则表达式工作。我不确定它的功能应该是什么,可能是一个
I
修饰符?你似乎是对的,现在我需要做的就是找到一种添加
I
修饰符的方法。你可以在创建RegExp对象时将其添加为第二个参数。
var pattern = new RegExp(_l.Regex.WebLink);
console.log(pattern.test(input.val()));
var pattern = new RegExp( _l.Regex.Link );
console.log( pattern.test( p ) );