我试图在RegExp
中使用JavaScript
来确定当前字符串(代表URL)是否属于github.com
域。
例如,如果http://developer.github.com
或http://subdomain.github.com
返回true
,否则返回false
。
尝试使用通配符代替子域,以允许http://
和.github.com
之间的任意数量的任何字符.. /http://[a-z]*.github.com/ig
http://jsfiddle.net/bobbyrne01/nrp6pkkq/1/js
..
var str0 = 'http://exämple.org/foo.html?baz=la#bumm';
var str1 = 'https://developer.github.com/v3/';
var str2 = 'http://developer.github.com/v3/';
var str3 = 'http://test.github.com/v3/';
var str4 = 'http://example.org';
var patt = new RegExp("/http://[a-z]*.github.com/ig");
document.getElementById('results').innerHTML = patt.test(str0) + '<br/>';
document.getElementById('results').innerHTML += patt.test(str1) + '<br/>';
document.getElementById('results').innerHTML += patt.test(str2) + '<br/>';
document.getElementById('results').innerHTML += patt.test(str3) + '<br/>';
document.getElementById('results').innerHTML += patt.test(str4) + '<br/>';
html
..<div id="results"></div>
output
..false
false
false
false
false
预期产量:
false
false
true
true
false
最佳答案
如果使用带双引号的RegExp
构造函数作为分隔符,则不需要其他分隔符,即/
var patt = new RegExp("http://[a-z]*\\.github\\.com", "ig");
例:
> var patt = new RegExp("http://[a-z]*\\.github\\.com", "ig");
> var str0 = 'http://exämple.org/foo.html?baz=la#bumm';
undefined
> patt.test(str0)
false
> var str1 = 'https://developer.github.com/v3/';
> patt.test(str1)
false
> var str2 = 'http://developer.github.com/v3/';
> patt.test(str2)
true