我想将所有空白索引列出到一个数组中。
我尝试这样:
<script>
var waw
var text1="Saya cinta bahasa java"
var waw= text1.search(/\s/g)
alert(waw)
</script>
失败。它仅显示第一个空格索引。虽然我需要做的是将所有列表都列出到像waw这样的数组变量中。
它应该是:
waw[0]= 4
waw[1]= 10
waw[2]= 17
最佳答案
要获取字符串中每个空格字符的索引数组,您只需要遍历字符串中的所有\s
模式匹配项,获取匹配项并检查regex lastIndex
属性。无需替换任何东西,或使用回调函数。
var waw = [];
re = /\s/g;
var text1="Saya cinta bahasa java";
while((m = re.exec(text1)) !== null) {
waw.push(re.lastIndex - m.length);
}
document.write(JSON.stringify(waw)); // => [4,10,17]
请注意,在JavaScript中,
\s
仅与ASCIII空格匹配。这是 Unicode空格的列表(请参阅Unicode Character Categories):
分隔符,空格
\p{Zs}
:分隔符,行
\p{Zl}
:分隔符,段落
\p{Zp}
:因此,您可以使用以下正则表达式获取所有空格:
var re = /[\s\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000\u2028\u2029]/g;