用于删除字母和 '[单引号] 以外的任何内容的正则表达式
Regular expression to remove anything but alphabets and '[single quote]
如何更改此正则表达式以从字符串中删除除字母和'(单引号(之外的所有内容?
pattern = /'b(ma?c)?([a-z]+)/ig;
- 此模式删除了不需要的空格并将第一个字母大写,并将其余字母变为小写
- 我所说的字母是指英文字母a-z。
要删除字符,您需要使用实际执行此操作的东西,例如字符串replace
函数(可以接受正则表达式作为"from"参数(。
然后你只是在处理字符类的正常应用程序,在 JavaScript(和大多数其他正则表达式变体(中,它使用 [...]
来描述,其中...
是类中应该包含的内容。您将使用开头的^
来反转类的含义:
在您的情况下,可能是:
str = str.replace(/[^A-Za-z']/g, "");
。它将替换除英文字符A-Z (ABCDEFGHIJKLMNOPQRSTUVWXYZ(,a-z(abcdefghijklmnopqrstuvwxyz(和没有任何东西的单引号(例如,删除它(。
let str = "This is a test with the numbers 123 and a '.";
console.log("before:", str);
str = str.replace(/[^A-Za-z']/g, "");
console.log("after: ", str);
但是,请注意,英语中不使用的字母字符也不例外,并且网络上使用的各种语言中有很多字母字符(甚至在英语中,"借用"单词,如"瞧"和"天真"(。
你已经说过你只使用英语 A-Z 就可以了,但对于其他人来说:在支持 ES2018 及更高版本的 Unicode 属性匹配的环境中,你可以使用 'p{Alpha}
属性处理 Unicode 认为"字母"的任何内容,而不仅仅是 A-Z。'p
表示"匹配此 Unicode 属性"(像往常一样,小写版本'p
表示"匹配",大写版本 'P
表示"不匹配"(,{Alpha}
表示"字母":
str = str.replace(/[^'p{Alpha}']/gu, "");
(请注意,同样,'p{Alpha}
的意思是"字母",但由于它属于否定字符类,因此我们排除了字母字符。
请注意上面的u
标志,以启用较新的 Unicode 功能。这也处理了"瞧"和"幼稚"的例子:
let str = "This is a test with the numbers 123 and a ' and voilà and naïve.";
console.log("before:", str);
str = str.replace(/[^'p{Alpha}']/gu, "");
console.log("after: ", str);
相关文章:
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配
- 使用正则表达式选择圆括号内的内容
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- 字符串内双引号的正则表达式
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 正则表达式,用于匹配不是字符串“ABCD”的任何内容
- 用于比较 HTML 标记内的变量的正则表达式
- 如何使用正则表达式读取括号内的所有字符串
- 使用正则表达式在方括号内查找多个字符
- 正则表达式选择任何 html 标记之间的字符串
- 正则表达式保留/匹配任何以特定字符开头的单词
- 如何编写与任何字符串匹配的正则表达式
- 匹配正则表达式中的内括号表达式
- JavaScript正则表达式匹配不在特定属性中的任何内容
- 正则表达式获取任何类型的所有数字
- 正则表达式从方括号内获取文本
- 用于返回括号内带有浮点数的数字的正则表达式
- 您将如何构建一个正则表达式,将段落拆分为句子,但不拆分<>内的任何标点符号
- 接受JavaScript中的任何值?(正则表达式)