我知道代码很少,我错过了一些小东西。
小提琴:http://jsfiddle.net/0oa9006e/1/
代码:
var veri = "+???+Girdiğiniz eposta adresi 'adfadf' geçersiz.-???-";
var a = veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g);
a = a.replace(/[\+\-\?]*/g , "");
alert(a);
答案 0 :(得分:2)
String.match(param)
方法返回包含所有匹配项的数组。和javascript中的数组没有.replace method
。因此错误。你可以尝试类似的东西:
a = a.toString().replace(/[\+\-\?]*/g,""); // Array to string converstion
答案 1 :(得分:1)
您的匹配正在返回一个没有replace
的数组。尝试:
a = a[0].replace(/[\+\-\?]*/g , "");
答案 2 :(得分:1)
var veri = "+???+Girdiğiniz eposta adresi 'adfadf' geçersiz.-???-";
var a = veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g);
// The variable 'a' is now an array.
// The first step in debugging is to always make sure you have the values
// you think you have.
console.log(a);
// Arrays have no replace method.
// Perhaps you are trying to access a[0]?
// or did you mean to modify `veri`?
a = a.replace(/[\+\-\?]*/g , "");
alert(a);
答案 3 :(得分:1)
执行veri.match(/\+[\?]*\+(.*)*\-[\?]*\-/g)
后,您的变量a
将初始化为JavaScript数组,该数组没有replace
方法。
使用Regex101等RegEx工具查看正则表达式在字符串veri
上的匹配情况,然后对该数组的相应元素执行replace
操作。
以下是您正在使用的正则表达式的示例:http://regex101.com/r/hG3uI1/1
如您所见,您的正则表达式与veri
所拥有的整个字符串匹配,因此您希望对replace
返回的第一个(也是唯一的)元素执行match
操作:
a = a[0].replace(/[\+\-\?]*/g , "");