我正在为空白寻找一个javascript正则表达式.我在循环中检查几个不同的字符串,我需要找到其中有大空格的字符串.
白色空格字符串是一个循环,像这样......
请阅读此代码,var whitespace = " "然后循环只会在其上连接更多非破坏空格.
var whitespace = " "
for (var x = 0; x < 20; x++) {
whitespace += " "
}
Run Code Online (Sandbox Code Playgroud)
然后它会在字符串concat中使用.
sometext += whitespace + someData;
Run Code Online (Sandbox Code Playgroud)
我需要识别包含空格(20个空格)的字符串.
或者我应该做一个contains(whitespace)类似的东西.
任何帮助表示赞赏.
干杯,〜在圣地亚哥
ste*_*r25 37
对于这个特定的问题,Yogi是正确的 - 你不需要正则表达式,没有它你可能会更好.
为了将来参考,如果有其他人来看,正则表达式具有空白的特殊字符:
\s
Run Code Online (Sandbox Code Playgroud)
在JS用法(正则表达式文字可以用正斜杠括起来)如果你要查找20个空格(不是制表符,换行符等),你可以这样做:
/ {20}/
Run Code Online (Sandbox Code Playgroud)
您还需要注意,许多浏览器正则表达式引擎不会将非破坏空间视为空白.NBSP字符的unicode表示形式为:
\u00A0
Run Code Online (Sandbox Code Playgroud)
组合,寻找20个空格字符(包括制表符等)的任意组合或连续的NBSP(方括号表示'字符类'):
/[\s\u00A0]{20}/
Run Code Online (Sandbox Code Playgroud)
编辑:纳入托马斯关于NBSP的观点.如果愿意的话,发表评论和/或回答投票 - 我知道我有.
cit*_*kid 11
至少IE和Chrome在\ s中不包含char 160(nbsp).包含它的正则表达式是
wsregex = /[\s|\u00A0]/
Run Code Online (Sandbox Code Playgroud)
另见 http://www.adamkoch.com/2009/07/25/white-space-and-character-160/ 谁报道了IE,但同时chrome显然也改为不包括它.
如果您将空白定义为 20 个空格,您可以这样做
var input = whitespace + someData;
if(input.indexOf(whitespace) != -1)
{
//input contains whitespace.
}
Run Code Online (Sandbox Code Playgroud)
当你可以不用正则表达式时,就没有必要使用它。