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