Javascript RegExp-测试方法问题
我在实现Javascript RegExp-test方法时遇到了一个问题Javascript RegExp-测试方法问题,javascript,regex,Javascript,Regex,我在实现Javascript RegExp-test方法时遇到了一个问题 var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo'] array .forEach(function(cns) { var connector_name = '/.*' + cns + '$/'; console.log('conne name', connector_name); if (connector_name.t
var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo']
array .forEach(function(cns) {
var connector_name = '/.*' + cns + '$/';
console.log('conne name', connector_name);
if (connector_name.test('facebook')) {
con = {
account_type: cns
};
console.log('cns', cns);
}
});
它给了我未捕获的异常***[TypeError:Object/*facebook$/没有方法“test']。
但当我给出下面的方法时,它是有效的
if (/.*facebook$/.test('facebook')) {
con = {
account_type: 'facebook'
};
}
请帮我解决这个问题。多谢各位 您可以创建如下正则表达式:
/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
…或者像这样:
/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
不能使用如下字符串创建一个:
/regular expression/
new RegExp('regular expression')
'/.*' + cns + '$/';
片段:
var数组=['facebook','twitter','linkedin','xing','weibo']
array.forEach(函数(cns){
var connector_name=newregexp('.'+cns+'$);
console.log('conne name',connector_name);
if(连接器名称测试('facebook')){
con={
帐户类型:cns
};
控制台日志('cns',cns);
}
});代码>在您的代码中:
var连接器_name='/.'+cns+'$/'代码>
连接器名称是一个字符串,而不是RegExp对象。而且String
没有test()
方法
但在这里:
if(/.*facebook$/.test('facebook')){
/.*facebook$/
是一个RegExp对象,它具有test()
方法
您要使用的是RegExp构造函数:
var array = ['facebook', 'twitter', 'linkedin', 'xing', 'weibo']
array .forEach(function(cns) {
var connector_name = new RegExp('.*' + cns + '$');
console.log('conne name', connector_name);
if (connector_name.test(facebook)) {
con = {
account_type: cns
};
console.log('cns', cns);
}
});
非常感谢,这真的帮了我的忙。)非常感谢你的快速回复,这真的帮了我的忙。