我尝试了这样的正则表达式:
([0-9]{3}\.)(.*)(\-[0-9]{4})
但这得到了所有,我只想要中间。
答案 0 :(得分:1)
您的正则表达式(\[0-9\]{3}\.)(.*)(\-\[0-9\]{4})
正常,您只需要获取第二个捕获的组结果。
var arr = ["001.1-2016", "001.8-2015", "001.12-2014", "001.123-2016"];
var regex = /([0-9]{3}\.)(.*)(\-[0-9]{4})/;
arr.forEach(function(str) {
document.body.innerHTML += str.match(regex)[2] + '<br />';
});
&#13;
您可以使用String#split
和parseInt
。
var value = "001.12-2014";
var num = parseInt(value.split('.')[1], 10);
var value = "001.12-2014";
var num = parseInt(value.split('.')[1], 10);
document.body.innerHTML = num;
&#13;
使用Regex
var value = "001.12-2014";
var num = value.match(/.*?\.(\d+)/)[1];
var value = "001.12-2014";
var num = (value.match(/.*?\.(\d+)/) || [])[1];
document.body.innerHTML = num;
&#13;
我只需要在这个数字中添加+1,例如。 &#34; 001.12-2014&#34; &GT;&GT;&GT; &#34; 001.13-2014&#34;或&#34; 001.123-2014&#34; &GT;&GT;&GT; &#34; 001.124-2014&#34;
var arr = ["001.1-2016", "001.8-2015", "001.12-2014", "001.123-2016"];
arr = arr.map(e => e.replace(/\.(\d+)/, ($0, $1) => '.' + (1 + +$1)));
document.body.innerHTML = arr;
&#13;
要将数字增加1,您可以使用String#replace
document.getElementById('input').addEventListener('keyup', function() {
var value = this.value;
value = value.replace(/\.(\d+)/, function($0, $1) {
return '.' + (1 + +($1 || 0));
});
document.getElementById('output').innerHTML = value;
}, false);
&#13;
<input type="text" id="input" />
<pre id="output"></pre>
&#13;
答案 1 :(得分:1)
正则表达式可能是
class Model < ActiveRecord::Base
self.primary_keys = :some_id,:some_other_id
end
如果您不关注/[0-9]+\.([0-9]+)\-[0-9]+/g
之前和.
您可以在here上进行测试。
答案 2 :(得分:1)
尝试使用split方法。split()
方法通过将字符串分隔为子字符串将String对象拆分为字符串数组。
<script>
function myFunction() {
var str = "001.12-2014";
var res = new Array();
res=str.split(".");
var finalres=res[1].split("-",1);
document.getElementById("demo").innerHTML = finalres;
}
</script>
输出:
答案 3 :(得分:1)