javascript - 带有 replace() 的正则表达式仅用于字母

标签 javascript regex text replace

我有一个输出的字符串

20153 Risk
我想要实现的是只获取字母,我通过使用正则表达式只获取数字来实现
const cf_regex_number = cf_input.replace(/\D/g, '');
这将仅返回 20153 .但是一旦我尝试只获取字母,它就会返回 while 字符串而不是 Risk .我已经完成了我的研究,并且只获取字母的正则表达式正在使用 **/^[a-zA-Z]*$/**这是我的代码行,我试图只获取字母
const cf_regex_character = cf_input.replace(/^[a-zA-Z]*$/,'')
但不是返回 Risk ,它正在返回 20153风险这是 string 的整行。

最佳答案

您的第一个模式是定位每个非数字并用空替换它。
另一方面,您的第二个模式仅定位模式的第一次出现,并且该模式正在寻找字符串的开头,然后是字母,然后是字符串的结尾。没有这样的序列——如果你从字符串的开头开始,正好有零个字母,那么你离字符串的预期结尾很远。即使这样做有效,您也是在删除字母,而不是非字母。
此模式与您的第一个模式平行(删除任何出现的非字母):

const cf_regex_character = cf_input.replace(/[^a-zA-Z]/g,'')
但可能更好的方法是提取所需的子字符串,而不是删除所有不是它的内容:
const letters = cf_input.match(/[a-z]+/i)[0];
const numbers = cf_input.match(/\d+/)[0];
(这是如果您知道有这样一个子字符串;如果您不确定,最好进行更具防御性的编码。)

关于javascript - 带有 replace() 的正则表达式仅用于字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63165173/

相关文章:

javascript - 如何为在 typescript 中创建嵌套元素结构的函数创建接口(interface)?

javascript - 样式/更改 Material UI React 中的自动完成关闭图标

php - 正则表达式表示一个单词,但如果他们正在创建另一个单词,则避免使用它

Python提取子字符串但保留空格

Java:使用 JOptionPane.showInputDialog(null, "Text") 的多行文本;

javascript - Chrome 中 HTML5 视频奇怪的渲染错误

javascript - 建立网站时,如何将多个小图片组合成一个大图片?

JavaScript 正则表达式返回 false?

Python tkinter 模块文本转换

python - 将文本渲染到 kivy Canvas