Javascript .replace()不会对字符串进行任何操作

时间:2019-02-20 13:58:55

标签: javascript string replace

作为拥有超过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/

进行了证明。

所以在这里,我想知道以地狱的名义出了什么问题,我感谢任何提供帮助的人!

3 个答案:

答案 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()

相关问题