Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式结果跳过多个空格_Javascript_Regex_Whitespace - Fatal编程技术网

Javascript 正则表达式结果跳过多个空格

Javascript 正则表达式结果跳过多个空格,javascript,regex,whitespace,Javascript,Regex,Whitespace,以下是我的问题的一个最小示例: 如您所见,这个字符串包含多个句子,我在两个地方添加了多个空格:一个在句子末尾,另一个在句子中间。还有regex,我在这个字符串上运行它 问题是:正如您在控制台中看到的,匹配的结果不包含这些多个空格 这个问题的原因可能是什么。以及可能的解决方案 请帮忙/ 这不是正则表达式中的问题,也不是字符串中的问题,如果您尝试放置'\n'。你会看到它基本上只是用一个空格替换它,因此问题在于你的浏览器。您可能需要添加如下标题来修复它: content-type: text/htm

以下是我的问题的一个最小示例:

如您所见,这个字符串包含多个句子,我在两个地方添加了多个空格:一个在句子末尾,另一个在句子中间。还有regex,我在这个字符串上运行它

问题是:正如您在控制台中看到的,匹配的结果不包含这些多个空格

这个问题的原因可能是什么。以及可能的解决方案


请帮忙/

这不是正则表达式中的问题,也不是字符串中的问题,如果您尝试放置'\n'。你会看到它基本上只是用一个空格替换它,因此问题在于你的浏览器。您可能需要添加如下标题来修复它:

content-type: text/html

或者在需要时尝试base64编码。解码。

浏览器不显示连续的空格。如果要使用实体,则会显示这些实体和空间。比如说

您的代码正在运行 就在您尝试打印阵列本身时,浏览器会修剪控制台中多余的空白。尝试打印单个数组元素(取决于浏览器),您将看到它们确实包含额外的空格

//您需要打开控制台才能在此处查看结果
变量字符串='问题6/7'
+第三,患者突然出现呼吸急促和低血压。他的心率是每分钟100次,PR和QRS间期正常。”
var sentencesMatch=string.match(/([\sa-zA-Z\d]){1}.+?[\.!\?]{1}([\s]+\$)/g);
控制台日志(语句匹配);
for(句子匹配中的变量i){
//添加引号,以便我们可以看到尾随空格
log(“”+sentencesMatch[i]+“”);

}
我添加了到JSFIDLE的链接-只是为了澄清。。您希望看到什么输出?字符串中有两个地方我添加了四个空格而不是一个。我希望这些空格会在结果匹配中,但它们会被一个空格替换。我认为这只是
控制台.log
没有显示额外的空格。尝试
alert
document。写入
后,字符就在那里了。不!我使用console.log只是为了一个简单的例子。你能告诉我这个的完整语法吗。使用HTML和JavaScript?我的标签中有这样一条:
不幸的是,我只是一个PHP程序员。我在我的代码中也遇到了同样的问题,但是这里介绍了如何使用base64对其进行解码和编码,并将其添加到header use(php)header(“内容类型:text/html”);不幸的是,我使用的是Meteor JS。所以这行不通!但如果我的脚本中有其他正则表达式。我是否必须使用$#160;查找空间?160是一个空间实体。只需在输出到浏览器时使用replace。但问题是,在输出到broswer之前,该文本已经用html元素包装好了。空间替换也会影响标记。示例字符串中没有HTML。您不应该在HTML上使用正则表达式。您提供了一个示例字符串;该字符串的问题是浏览器只显示一个空白字符(连续时)。若要解决此问题,请使用此代码将空白字符移动到其实体。实体应为
。您缺少结束分号。
content-type: text/html
<script type="text/javascript">
var string = 'Question 6 of 7 '
+'Three, the patient suddenly develops shortness of breath and becomes hypotensive.    His heart rate is 100/min, with a normaI PR and    QRS intervaI.'
var sentencesMatch = string.match(/([\sa-zA-Z\d]){1}.+?[\.!\?]{1}([\s ]+|$)/g);
var output = '';
for(var x= 0; x < sentencesMatch.length; x++){
    output += sentencesMatch[x].replace(/ /g, '&#160;');
}
document.write(output);
</script>