我正在努力做一些每月分期付款,有一些可能性,例如:
等等...我正在尝试任何字符,多个空格或多个字符(相互之间是否相等)。到目前为止,我已达到以下代码...但我可以为数字添加例外,结果并不总是正确的。
var pattern = /(\#?[a-zA-Z(!0-9) \/]+)/g;
var a = '30/60/90';
var b = a.split(pattern);
$('#yyy').text(b);
$('#xxx').text(b.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label id="yyy"></label>
<br><br>
<label id="xxx"></label>
我在正则表达式中是可怕的,真的是“noob”,所以如果可以在答案/评论中解释为什么你在做特定的正则表达式,我会很高兴(所以我可以学习而不是复制/粘贴没有太多线索)
答案 0 :(得分:1)
我不确定我是否理解你的问题,但我会按照我的理解回答:
要分割除数字以外的任何内容,解决方案将是:
var pattern = /\D+/g;
var a = '30/60/90';
var b = a.split(pattern);
$('#yyy').text(JSON.stringify(b));
$('#xxx').text(b.length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label id="yyy"></label>
<br><br>
<label id="xxx"></label>
&#13;
正则表达式非常简单:\d
表示数字,因此\D
表示不是数字,因此\D+
表示一系列不是数字的字符。
如果你尝试匹配而不是拆分可能会更容易:
var pattern = /\d+/g;
var a = '30/60/90';
var b = [];
var m;
while (m = pattern.exec(a))
b.push(m[0]);
$('#yyy').text(JSON.stringify(b));
$('#xxx').text(b.length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label id="yyy"></label>
<br><br>
<label id="xxx"></label>
&#13;
在这种情况下,\d+
表示一系列数字。
供参考,在JS中:
\d
是[0-9]
\D
是[^0-9]