我想从字符串中删除所有数值 但仅当字符串包含至少一个字母时。
我如何在JavaScript中执行此操作?
例如
var s = "asd23asd"
然后结果必须是asdasd
但是如果
var s = "123123"
然后结果必须是123123,因为字符串没有任何字母。
答案 0 :(得分:13)
function filter(string){
var result = string.replace(/\d/g,'')
return result || string;
}
或直接
var newString = string.replace(/\d/g,'') || string;
为什么||工作
||和&是条件运算符,并确保你使用if,while ...
如果你喜欢
var c1 = false, c2 = true, c3= false, c4 = true;
if( c1 || c2 || c3 || c4) {
}
此评估将在有效或无效的第一时刻停止。
这个心态认为评价在c2中停止这种思维更快 (true || false)比(false || true)
此时我们可以添加另一个概念,运算符总是返回评估中的最后一个元素
(假||'嘿' || true)返回'嘿嘿,记得在JS'嘿'是的,但是''是假的
有趣的例子:
var example = {
'value' : {
'sub_value' : 4
}
}
var test = example && example.value && example.value.sub_value;
console.log(test) //4
var test_2 = example && example.no_exist && example.no_exist.sub_value;
console.log(test_2) //undefined
var test_3 = example.valno_existue.sub_value; //exception
function test_function(value){
value = value || 4; //you can expecify default values
}
答案 1 :(得分:3)
你可以试试这个。首先检查单词是否包含任何字母,如果是,则替换。
var s = "asd23asd";
if(/\w+/.test(s))
s = s.replace(/\d+/g, '');
答案 2 :(得分:0)
答案 3 :(得分:-1)
Javascript代码
var txt='asd23ASd3';
if(parseInt(txt))
var parsed=txt;
else
var parsed=txt.replace ( /[^a-zA-Z]/g, '');
console.log(parsed)