Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Replace - Fatal编程技术网

Javascript 正则表达式匹配除逗号(包括逗号)周围的前导空格和尾随空格以外的所有空格

Javascript 正则表达式匹配除逗号(包括逗号)周围的前导空格和尾随空格以外的所有空格,javascript,regex,replace,Javascript,Regex,Replace,我正在尝试匹配所有内容,除了逗号和它们周围的空格。但是,我希望它能够匹配单词之间的空格。这就是我到目前为止所做的: /[^,\s][a-zA-Z0-9_ !@#$%^&*()]+/gi 它匹配除逗号和尾随空格以外的所有内容,但它包括前导空格。下面是测试它的链接 我正试图围绕关键术语包装span标记。这就是我想要的最终结果: <span>Some text</span> , <span>Some more text</span&

我正在尝试匹配所有内容,除了逗号和它们周围的空格。但是,我希望它能够匹配单词之间的空格。这就是我到目前为止所做的:

/[^,\s][a-zA-Z0-9_ !@#$%^&*()]+/gi
它匹配除逗号和尾随空格以外的所有内容,但它包括前导空格。下面是测试它的链接

我正试图围绕关键术语包装span标记。这就是我想要的最终结果:

<span>Some text</span>   ,    <span>Some more     text</span>
一些文本,一些更多的文本
我目前正在使用

.replace(/([^,\s][a-zA-Z0-9_ !@#$%^&*()]+)/gi, "<span>$1</span>")
.replace(/([^,\s][a-zA-Z0-9.@$%^&*()]+)/gi,“$1”)

它更新contenteditable div中的span标记。我使用它在关键术语周围使用CSS放置气泡,并在每次输入后更新。任何帮助都将不胜感激!谢谢

这样做有用吗

/((?:(\w|[-!@#$%^&*()])+( (\w|[-!@#$%^&*()]))*)+)/g

正则表达式将是:

([\s\S]+?)(\s*,\s*|$)
然后在
replace()
方法中返回对两个捕获组的引用:

const regex=/([\s\s]+?)(\s*,\s*|$)/g;
const str=`uncased是一个测试,vertical这是一个测试
8万,贝尔蒂奇
80000,垂直
#303有氧内窥镜,kljafklj\$!asdfkj`;
//被替换的值将包含在结果变量中
const result=str.replace(正则表达式,$1$2');

控制台日志(结果)我目前正在使用
.replace(/([^,\s][a-zA-Z0-9\$%^&*()]+)/gi,“$1”)
并在每次输入后更新contenteditable div中的span标记。我应该如何合并
split()
?@JamesMarquez您应该在问题中添加您的评论,这会有所帮助;)在编辑之前,它仅在输入逗号后更新span标记。编辑后,它完全按照预期工作。非常感谢!不客气。如果你能找到一个更好的方法来解决你的问题,你也可以考虑投票。我做了另一个测试(<代码>([s\s] +)< /代码>困扰我),尝试用一个从前导空间开始的字符串,你将以<代码> *多个空格结束。unCASE是测试< /代码>,否则效果很好。没有困难。你只需要在匹配前把它考虑到<代码> **/COD>到ReXEX-RoMeMaGayaybe,你就可以用它完成你的答案,然后;
([\s\S]+?)(\s*,\s*|$)