Javascript TypeError:调用replace方法时,undefined不是函数

Javascript TypeError:调用replace方法时,undefined不是函数,javascript,Javascript,我知道代码很小,我遗漏了一些小东西 小提琴: 代码: var veri = "+???+Girdiğiniz eposta adresi 'adfadf' geçersiz.-???-"; var a = veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g); a = a.replace(/[\+\-\?]*/g , ""); alert(a); 您的匹配正在返回一个数组,该数组没有replace。尝试: a = a[0].replace(/[\+\-\?]*/g

我知道代码很小,我遗漏了一些小东西

小提琴:

代码:

var veri = "+???+Girdiğiniz eposta adresi 'adfadf' geçersiz.-???-";

var a = veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g);
 a = a.replace(/[\+\-\?]*/g , "");
alert(a);

您的匹配正在返回一个数组,该数组没有
replace
。尝试:

a = a[0].replace(/[\+\-\?]*/g , "");
当执行
veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g)
时,变量
a
初始化为JavaScript数组,该数组没有
替换方法

使用正则表达式工具查看正则表达式如何匹配字符串
veri
,然后对该数组的相应元素执行
replace
操作

下面是一个正在使用的正则表达式示例:

如您所见,正则表达式匹配由
veri
持有的整个字符串,因此您希望对
match
返回的第一个(也是唯一一个)元素执行
replace
操作:

a = a[0].replace(/[\+\-\?]*/g , "");
String.match(param)
方法返回一个包含所有匹配项的数组。javascript中的数组没有
。替换方法
。因此是错误的。您可以尝试以下方法:

 a = a.toString().replace(/[\+\-\?]*/g,""); // Array to string converstion

数组没有
replace
方法。
 a = a.toString().replace(/[\+\-\?]*/g,""); // Array to string converstion