Javascript replace()对字符串不做任何处理
作为一个有2年以上经验的web开发人员,我很不好意思问这个问题,但是- 以下代码未按预期工作:Javascript replace()对字符串不做任何处理,javascript,string,replace,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
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)中试过了,结果是一样的
与我认为regex可能有问题的观点相反,它作为一个独立的工具似乎工作得很好,这已经被这个实时测试工具证明了
所以我想知道到底哪里不对,我感谢所有帮助我的人 传递的是
replace
字符串而不是正则表达式
从正则表达式周围删除
“
字符。它不起任何作用,因为您试图替换不存在的字符串“/[a-zA-Z,]+/g”
您需要删除引号才能有效地使用正则表达式:
var string = "Daln, nik, But, Blaz, wan";
string = string.replace(/[a-zA-Z,]+/g, "");
您没有将正则表达式作为参数传递。根据文档,您传递的是
string
正则表达式文字:它由斜杠(/
)之间封闭的模式组成
您正在将表达式用引号括起来。这使它成为一个字符串。您应该删除“”
如果要创建带字符串的正则表达式,可以使用将正则表达式括在引号中;它应该是
/[a-zA-Z,]+/g
。命名变量string
。:@Keith its用于测试目的是的,这就是为什么我做了一个笑脸..ps.如果你想从字符串创建正则表达式,它更像->“Daln,nik,But,Blaz,wan”。替换(新的正则表达式(“[a-zA-Z,]+,“g”),”)
既然你已经提到了这一点,那就很有道理了。:D