如何使用正则表达式转换字符串,以便它只包含字母(a-z)或连字符。
它应该摆脱" ' ! ? .
等等。即使它们出现多次。
// if i have e.g.
var test = '"test!!!"';
// how can i get the value "test"?
可以帮助sombody。 RegEx对我来说是全新的。
答案 0 :(得分:1)
只需replace
您不想要的字符:
'"test!!!"'.replace(/[^a-z-]/gi, '')
[^a-z-]
匹配除a-z和连字符之外的所有字符。 /g
标志使正则表达式多次应用。 /i
标志(可选)使其与大小写不匹配,即不替换大写字符。
答案 1 :(得分:1)
这非常简单:您构建了一个匹配character class所需字符的everything except,并在replacing每次出现时将其删除( global flag)空字符串:
return str.replace(/[^a-z-]/g, "");
答案 2 :(得分:0)
str = "hello!! my + name $ is slim-shady";
console.log(str.replace(/[^a-z-]+/g, ''));
$ node src/java/regex/alphanum.js
hellomynameisslim-shady
答案 3 :(得分:0)
对任何字符串变量使用replace
方法,并指定要删除的字符。
以下是一个例子:
var sampleString = ("Hello World!!"); //Sample of what you have.
var holdData = sampleString.replace(/!!/gi, '');
window.alert(holdData);
答案 4 :(得分:-1)
var str = "test!!!";
str = str.replace(/[^A-Za-z\-]/g,"");