2015-05-12 30 views
-1

有一种场景,需要仅修剪字符串中的字母并显示数字和特殊字符。如何仅使用javascript或jquery修剪字母

var abc = "Hai 40.00"; // Output : 40.00 
var xyz = "Hai 40.00 - 50.00 Was" // Output : 40.00 - 50.00 

任何通用的方式来处理这个。

+0

您能否添加一个您期望从这些字符串中看到的输出示例,以及您自己尝试解决此问题的尝试。 –

回答

2

试试这个:

var xyz = "Hai 40.00 - 50.00 Was" 
xyz = xyz.replace(/[a-z]*/gi, '').trim(); 
alert(xyz); 
  1. [a-z]:匹配所有的字母
  2. *:匹配前一组零次或多次
  3. g:全局标志,不停止的第一场比赛
  4. i:案例无声匹配
  5. trim:删除前后空格
+0

不错,但你忘了添加特殊字符 – wallop

+0

'只需修整字符串中的字母并显示数字和特殊字符' – Tushar

+0

啊对我的坏! – wallop

0

我不完全确定这是基于您的问题的准确答案。但我相信你试图从每个var中删除所有的字符,只留下整数,对吧?

如果是这种情况,您可以使用.replace()方法并传递一个匹配所有非数字的正则表达式值\D

下面是一个例子:

removeInt = abc.replace(/\D/g,''); 

祝你好运!

+0

然后他不会得到40.00 - 50.00意义甚至 - 和。将被删除 – wallop

1
var xyz = "Hai 40.00 - 50.00 Was"; 
xyz = xyz 
     .replace(/^\w+/g, '') // remove leading alpha 
     .replace(/\w+$/g, '') // remove ending alpha 
     .trim()    // regular trim 
// output = "40.00 - 50.00" 

你也可以合并两个replace

var xyz = "Hai 40.00 - 50.00 Was"; 
xyz.replace(/^\w+(.*?)\w+$/, '$1') 
    .trim() 
0

请试试这个。结果将是带小数的数字。

var abc = "Hai 40.00-"; 
var result = abc.replace(/[A-Za-z$]/g, ""); 
alert(result);