gpt4 book ai didi

用于逗号分隔字符串的 Javascript 正则表达式

转载 作者:行者123 更新时间:2023-11-30 08:59:07 28 4
gpt4 key购买 nike

我需要一个对输入/类型=隐藏字段的值执行“包含”功能的正则表达式。此隐藏字段以逗号分隔的字符串形式存储唯一值。

这是一个场景。
值:“mix”需要添加到隐藏字段。只有当它不作为逗号分隔值存在时才会被添加。

以我对正则表达式的有限了解,我无法阻止搜索返回所有出现的“mix”值。例如,如果:hiddenField.val = 'mixer, mixon, mixx',则正则表达式始终返回 true,因为所有三个词都包含“mix”字符。

在此先感谢您的帮助

最佳答案

您可以使用\b 元字符来设置单词边界:

var word = "mix";
new RegExp("\\b" + word + "\\b").test(hidden.value);

演示: http://jsfiddle.net/ztYff/


更新。为了保护我们在使用变量而不是硬编码时可能出现的问题的正则表达式(见下面的评论),我们需要转义word变量中的特殊字符. One possible solution就是使用下面的方法:

RegExp.escape = function(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}

演示: http://jsfiddle.net/ztYff/1/


更新 2. 关注 @Porco's answer我们可以结合正则表达式和字符串拆分来获得另一种通用解决方案:

hidden.value.split(/\s*,\s*/).indexOf(word) != -1;

演示: http://jsfiddle.net/ztYff/2/

关于用于逗号分隔字符串的 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com