[英]Regular Expression Split and match
我正在学习如何使用正则表达式,并有些困惑,希望有人可以澄清一下。如果使用以下字符串和表达式,我将获得匹配的预期结果,但如果使用split,则正好相反。 撞墙撞我不明白为什么?
var a = "212,0,,456,,0,67889";
var patt = /,\d{1,5},/gmi;
pos=a.match(patt);
alert(pos);// returns ,0, ,456, and ,0,
pos=a.split(patt);
alert(pos); //returns 212, and ,67889
连续的拆分将被忽略,因此您将得到与正则表达式不匹配的两个字符串。
拆分意味着在字符串上查找模式的匹配项,并在每次看到匹配项时拆分该字符串。 同时删除找到的每个匹配项。
此链接提供了一些很好的示例: http : //www.tizag.com/javascriptT/javascript-string-split.php
“〜分隔符将分隔符用作分割字符串的一种方式。每次看到我们指定的分隔符时,它将在数组中创建一个新元素。分隔函数的第一个参数是分隔符。” (定界符是模式)
范例一:
<script type="text/javascript">
var myString = "123456789";
var mySplitResult = myString.split("5");
document.write("The first element is " + mySplitResult[0]);
document.write("<br /> The second element is " + mySplitResult[1]);
</script>
输出:
The first element is 1234
The second element is 6789
“请确保您意识到,因为我们选择了5作为分隔符,所以它不在我们的结果中。这是因为从字符串中删除了分隔符,并且其余字符被5占用的空格所分隔”。
示例二:
<script type="text/javascript">
var myString = "zero one two three four";
var mySplitResult = myString.split(" ");
for(i = 0; i < mySplitResult.length; i++){
document.write("<br /> Element " + i + " = " + mySplitResult[i]);
}
</script>
输出:
Element 0 = zero
Element 1 = one
Element 2 = two
Element 3 = three
Element 4 = four
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.