gpt4 book ai didi

javascript - 如何检查此正则表达式中所有特殊字符的正斜杠?

转载 作者:行者123 更新时间:2023-11-29 22:59:02 25 4
gpt4 key购买 nike

我正在尝试找到一个正则表达式解决方案来检查字符串是否匹配所有条件 + / 正斜杠。

当前代码:

var specialChars =/^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g;

如果字符串如下所示,这将匹配为真:4!@#$

但是,如果字符串如下所示,它就不起作用:5/6/2019


这就是我实现此检查的方式,基本上我有一个接受长字符串的函数。我要做的是提取跟踪 ID,然后从中创建一个链接。

我的测试用例也在演示中,日期测试失败了,因为 linkCreator 函数最终链接到日期:

https://jsfiddle.net/cojuevp5/

var linkCreator = function(value) {
var strings = value.split(' ');
var aHref = '<a href="http://www.google.com/search?q=';
var targetBlank = '" target="_blank" style="text-decoration: underline">';

var trackingString = strings.reduce(function(prevVal, currVal, idx) {
var specialChars = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g;
// Does val start with number and not contain special characters including /
var link = currVal.match(/^\d/) && !currVal.match(specialChars) ?
aHref + currVal + targetBlank + currVal + '</a>' :
currVal;
return idx == 0 ? link : prevVal + ' ' + link;
}, '');

console.log(trackingString);
}

const case1 = '434663008870'
const case2 = '4S4663008870'
const case3 = '4S4663008870 PS'
const case4 = 'SHD FX 462367757727 PS'
const case5 = 'SHD FX 429970755485, R'
const case6 = 'SHD HEADER TRACKING PS'
const case7 = 'N/A'
const case8 = 'AF SHD FX 462367757727 PS'
const case9 = '4/7/2019'
const case10 = '4!@#$%^&'

const value = case9

const link = linkCreator(value)
console.log(link)

最佳答案

您可能想添加一个 \/,这可能会解决您的问题:

^([A-z0-9!\/@#$%^&*)(+=._-]+)$

就像Barmar说,你不需要转义 [] 中的所有字符:

我猜这可能是您想要匹配的:

enter image description here

您可能只使用 this tool并设计您想要的任何表达方式。

这张图显示了你的表达式是如何工作的:

enter image description here

关于javascript - 如何检查此正则表达式中所有特殊字符的正斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008640/

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