从字符串中删除数字
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)
你非常接近.
这是你在问题中写的代码:
questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)
您编写的代码确实会查看questionText变量,并生成输出,该输出是原始字符串,但数字替换为空字符串.
但是,它不会自动将其分配回原始变量.您需要指定要将其分配给的内容:
questionText = questionText.replace(/[0-9]/g, '');
Run Code Online (Sandbox Code Playgroud)