假设我有这两个字符串:“5/15/1983”和“1983.05.15”。假设字符串中的所有字符都是数字,除了可以出现在字符串中任何位置的“分隔符”字符。只有一个分隔符;字符串中任何给定的非数字字符的所有实例都是相同的。
如何使用正则表达式提取此字符?有没有比下面更有效的方式?
"05-15-1983".replace(/\d/g, "")[0];
谢谢!
答案 0 :(得分:16)
"05-15-1983".match(/\D/)
从技术上讲,这会返回一个包含一个字符串的数组,但它会隐式转换为大多数需要的字符串。
答案 1 :(得分:1)
虽然我无法完全得到您想要做的事情,但我试图仅在一个字符串中提取数字,并在下一个字符串中提取分隔符。
我使用了以上内容:
<script>
var myStr1 = "1981-01-05";
var myStr2 = "1981-01-05";
var RegEx1 = /[0-9]/g;
var RegEx2 = /[^0-9]/g;
var RegEx3 = /[^0-9]/;
document.write( 'First : ' + myStr1.match( RegEx1 ) + '<br />' );
document.write( 'tooo : ' + myStr2.replace( RegEx2, "" ) + '<br />' );
document.write( 'Second : ' + myStr1.match( RegEx2 ) + '<br />' );
document.write( 'Third : ' + myStr1.match( RegEx3 ) + '<br />' );
</script>
输出:
First : 1,9,8,1,0,1,0,5
tooo : 19810105
Second : -,-
Third : -
我希望你得到答案
答案 2 :(得分:0)
显然很累或没注意我之前的回答。对于那个很抱歉。我应撰写的内容是:
var regexp = new RegExp("([^0-9])","g");
var separator = regexp.exec("1985-10-20")[1];
当然,Matthew Flaschen的作品也同样如此。我只是想纠正我的。