-1

如何使用正则表达式转换字符串,使其仅包含字母 (az) 或连字符。它应该摆脱" ' ! ? .等等。即使它们出现多次。

// if i have e.g.
var test = '"test!!!"';

// how can i get the value "test"?

有人可以帮忙吗。RegEx 对我来说是全新的。

4

5 回答 5

1

只是replace你不想要的字符:

'"test!!!"'.replace(/[^a-z-]/gi, '')

[^a-z-]匹配除 az 和连字符以外的所有字符。该/g标志使正则表达式应用多次。该/i标志(可选)使其匹配不区分大小写,即不替换大写字符。

于 2012-10-14T21:34:40.787 回答
1

这很简单:您构建一个匹配您想要的那些字符之外的所有内容的字符类,并通过用空字符串替换每个出现(全局标志)来删除它们:

return str.replace(/[^a-z-]/g, "");
于 2012-10-14T21:34:51.390 回答
0
 str = "hello!! my + name $ is slim-shady";
   console.log(str.replace(/[^a-z-]+/g, ''));

$ node src/java/regex/alphanum.js 
hellomynameisslim-shady
于 2012-10-14T21:40:12.067 回答
0

对任何字符串变量使用该replace方法并指定要删除的字符。

这是一个例子:

 var sampleString = ("Hello World!!");    //Sample of what you have. 
 var holdData = sampleString.replace(/!!/gi, '');
 window.alert(holdData);
于 2012-10-14T21:40:30.050 回答
-1
var str = "test!!!";
str = str.replace(/[^A-Za-z\-]/g,"");
于 2012-10-14T21:35:28.703 回答