[英]Javascript .replace() does nothing to string
作为拥有2年以上经验的Web开发人员,我很尴尬地问这个问题,但是-
以下代码无法正常工作:
var string = "Daln, nik, But, Blaz, wan";
string = string.replace("/[^a-zA-Z,]+/g", "");
如果字符串没有被删除,我的意思是即使我将其设置为正则表达式
var string = "Daln, nik, But, Blaz, wan";
string = string.replace("/[a-zA-Z,]+/g", "");
它应该替换从a到z的任何字符(大写和小写)以及任何逗号,但不能替换。 我已经在浏览器和开放式测试环境(例如jsbin.com)中进行了尝试,结果是相同的。
与我的看法相反,正则表达式可能有问题,它似乎可以独立运行,这已经通过实时测试工具https://regexr.com/进行了证明。
所以在这里,我想知道到底是什么名字错了,并且我感谢任何提供帮助的人!
您正在传递replace
字符串而不是正则表达式。
从正则表达式周围删除"
字符。
它没有任何作用,因为您试图替换不存在的字符串"/[a-zA-Z,]+/g"
。
您需要删除引号以有效使用正则表达式:
var string = "Daln, nik, But, Blaz, wan";
string = string.replace(/[a-zA-Z,]+/g, "");
您没有将正则表达式作为参数传递。 您正在传递string
。 根据文档。
正则表达式文字:由斜线(
//
)之间的模式组成。
您将表达式用""
引号引起来。 这使它成为string
。 如果要使用字符串创建正则表达式,则应删除""
。 您可以使用RegExp()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.