我正在学习如何使用正则表达式,并且对一些希望有人能够澄清的事情感到有点困惑,如果我使用以下字符串和表达式,我会得到匹配的预期结果,但如果我使用拆分,则完全相反。我不明白为什么用头撞墙?
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
"~ split 函数使用分隔符来分解字符串。每次它看到我们指定的分隔符时,都会在数组中创建一个新元素。 split 函数的第一个参数是分隔符。” (分隔符就是模式)
示例一:
<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
关于javascript - 正则表达式拆分和匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194208/