Javascript regex计算空白字符
javascript regex to count whitespace characters
我可以使用javascript regex来计算字符串中第一个文本字符之前的空白字符数吗?我只关心是否有0 1和2+
我目前的工作解决方案是有三个正则表达式,只是使用匹配来确定0,1,或2+类别(每个单独的模式),但我正在寻找一个更优雅的解决方案。
是甚至可能计数模式与regex?我可以使用非贪婪分组并计算长度....
" a".match(/^'s{0,2}/)[0].length
此正则表达式匹配字符串开头的0到2个空白字符。
你可以这样做:
" aaa".replace(/^('s*).*$/,"$1").length
我不确定我会在现实生活中使用正则表达式来完成这项工作,但是您可以在捕获中匹配它们并查看它们的长度:
function countLeadingSpaces(str) {
return(str.match(/^('s*)/)[1].length;
}
一种为速度而设计的非正则表达式方式(几乎任何东西都比正则表达式快):
function countLeadingSpaces2(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] != " " && str[i] != "'t") {
return(i);
}
}
return(str.length);
}
您可以找到字符串中第一个非空格字符的索引,这与前导空白字符的数目相同。
t.search(/'S/);
如果你坚持,你可以限制返回0,1或2与Math.min(t.search(/'S/), 2);
如果没有非空格字符,则返回-1....
这应该可以完成工作:
string.split(/[^ 't'r'n]/)[0].length;
示例:http://jsfiddle.net/Nc3SS/1/
为什么不直接使用捕获组并检查长度:
<html>
<head>
</head>
<body>
<script language="javascript">
var myStr = " hello";
var myRe = /^('s*)(.*)$/;
var match = myRe.exec(myStr);
alert(match[1].length); // gives 2
alert(match[2]); // gives "hello"
</script>
</body>
</html
后面的代码可以作用于三种情况,长度为0、1或其他,并作用于字符串的其余部分。
您应该将正则表达式视为工具,而不是作为一个完整的工具箱
相关文章:
- 不同浏览器中的空白字符正则表达式行为
- Javascript Regex选择每个非字母数字字符和空白
- Regex只允许空白、字母和某些字符
- 匹配所有字符减去尾部空白,然后匹配大括号之间的字符
- JSON解析意外的非空白字符
- 为什么在尝试在 javascript 中对 URI 组件的保留字符进行编码时出现空白 %3 字符
- 输入表单中不允许有空白字符/空格
- 缺少空白后的字符-javascript
- 如何知道目标字符串之前是否有非空白字符
- Regex获取字符和空白之间的字符串,并排除第一个分隔符
- 由于空白字符,Java脚本失败
- angular -双簧管+ NodeJS流错误前非空白字符
- Javascript正则表达式:如何删除某些字符周围的所有空白
- 了解RegEx空白字符
- 如何让RegEx获取整个URL..从http开始,获取后面的所有内容,直到出现空白以及如何排除某些字符
- 连字符导致空白结果
- JavaScript对所有多行空格和其他空白字符使用regex进行替换
- 如何显示空白字符.但在选择文本时省略
- 用一个空白字符替换连续的空白
- Regex只用于单独的空白,而不是字符之间的空白