从字符串中删除数字?

kir*_*ran 68 javascript regex

从字符串中删除数字

questionText = "1 ding ?"
Run Code Online (Sandbox Code Playgroud)

我想替换这个号码和问题号码,号码可以是任意号码,我尝试下面的代码不起作用

questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

Kob*_*obi 138

非常接近,尝试:

questionText = questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

replace对现有字符串不起作用,它返回一个新字符串.如果你想使用它,你需要保留它!
同样,您可以使用新变量:

var withNoDigits = questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

一次删除整个数字块的最后一招,但那个可能走得太远了:

questionText = questionText.replace(/\d+/g, '');
Run Code Online (Sandbox Code Playgroud)


Koo*_*Inc 10

字符串是不可变的,这就是为什么questionText.replace(/[0-9]/g, '');它自己确实有效,但它不会改变questionText-string.您必须再次将替换的结果分配给另一个String变量或者再分配给textText.

var cleanedQuestionText = questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

或者\d+一次性使用(使用,见Kobi的答案):

 questionText = ("1 ding ?").replace(/\d+/g,'');
Run Code Online (Sandbox Code Playgroud)

并且如果你想要修剪前导(和尾随)空间:

 questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,'');
Run Code Online (Sandbox Code Playgroud)


Spu*_*ley 9

你非常接近.

这是你在问题中写的代码:

questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)

您编写的代码确实会查看questionText变量,并生成输出,该输出是原始字符串,但数字替换为空字符串.

但是,它不会自动将其分配回原始变量.您需要指定要将其分配给的内容:

questionText = questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)