2012-02-15 109 views

回答

2
var result = "061801850010300-09/A/B" 
.replace(/\//g, '-') 
.replace(/[A-Z]/ig, function(c){ 
    return c.toUpperCase().charCodeAt(0)-64; 
}); 
+0

它将第一次出现“/ A”的正确值返回为“-1”,但后来发生的事件被错过。 – 2012-02-15 08:18:48

+0

现在工作thx会再测试几次。那么我会标记它是正确的。 – 2012-02-15 08:23:46

+0

顺便说一句,它编辑后它工作。 – 2012-02-15 08:24:32

0

可以匹配要替换的一切,并作出表达正确的事情来替代它:

input = input.replace(/([\/A-Z])/g, function(m) { 
    return m == "/" ? "-" : m.charCodeAt(0) - 64 
}); 

演示:http://jsfiddle.net/Guffa/g2sgb/

+0

这看起来并不像JavaScript。 – 2012-02-15 08:16:43

+0

-1 OP需要Javscript。 __NOT__ C#。 – 2012-02-15 08:17:06

+0

@MathiasBynens:我错过了。我重写了它的Javascript。 – Guffa 2012-02-15 08:25:21