未终止的正则表达式文字js错误

时间:2013-11-09 06:24:27

标签: javascript jquery ruby-on-rails regex

我为url字段中存在http check添加了jQuery validator add方法。

JS

jQuery.validator.addMethod("valid_url", function(value, element) {
 if(!/^(https?|ftp):\/\/i.test(val))
    val = 'http://'+val; // set both the value
    $(elem).val(val); // also update the form element
 }

我的控制台抛出了 以下行中的“未终止的正则表达式文字”错误。

if(!/^(https?|ftp):\/\/i.test(val))

我的错误是什么?

2 个答案:

答案 0 :(得分:3)

正则表达式文字应该被分隔符(/)包围。没有终止分隔符:

/^(https?|ftp):\/\//i
//                 ^

例如:

>> /^(https?|ftp):\/\//i.test('http://stackoverflow.com/')
true
>> /^(https?|ftp):\/\//i.test('telnet://stackoverflow.com/')
false

答案 1 :(得分:0)

如果您只是试图连接一个使用正则表达式的变量而忘记某个地方的引号,那么也会出现此错误。