作为拥有超过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/
进行了证明。所以在这里,我想知道以地狱的名义出了什么问题,我感谢任何提供帮助的人!
答案 0 :(得分:5)
您要传递replace
一个字符串而不是一个正则表达式。
从正则表达式中删除"
个字符。
答案 1 :(得分:3)
它什么都不做,因为您正试图替换不存在的字符串"/[a-zA-Z,]+/g"
。
您需要删除引号以有效使用正则表达式:
var string = "Daln, nik, But, Blaz, wan";
string = string.replace(/[a-zA-Z,]+/g, "");
答案 2 :(得分:0)
您没有将正则表达式作为参数传递。您正在通过string
。根据文档。
正则表达式文字:,由包含在斜杠(
//
)之间的模式组成。
您将表达式用""
引号引起来。这使其成为string
。您应该删除""
如果要使用字符串创建正则表达式。您可以使用RegExp()