我有一个用户创建的字符串。我只允许字符A-Z、a-z、0-9、-、和_使用JavaScript,我如何测试字符串是否包含不是这些字符?如果字符串包含不是这些字符,我想提醒用户这是不允许的。我可以使用哪些Javascript方法和RegEx模式来匹配它? 最佳答案 您需要使用否定字符类。将以下模式与matchfunction一起使用:[^A-Za-z0-9\-_]例子:varnotValid='Thistextshouldnotbevalid?';if(notValid.match(/[^A-Za-z0-9\-_]/))alert('
给定一个字符串,如#fff443或#999999我如何验证字符串有:7个字符,第一个是哈希除了开头的散列之外,字符串中没有其他符号 最佳答案 看起来你正在匹配一个css颜色:functionisValidColor(str){returnstr.match(/^#[a-f0-9]{6}$/i)!==null;}详细说明:^匹配开头#一个散列[a-f0-9]a-f和0-9中的任意字母{6}前一组正好出现6次$匹配结束i忽略大小写 关于javascript-在JavascriptRegex中
接下来就是问题了。我创建了一个具有验证的输入字段,这是有效数据:1-12、14、16、22、25-35、41、49、55-901230-1992,2001-2099,99311-2131,3,4,5,6,10全部基本上,这些数字的任意组合(范围、逗号分隔的范围、逗号分隔的数字、逗号后的空格、逗号后没有空格、单词:'all')我的正则表达式:/^(([0-9]{0,4},?\s{0,})+([0-9]{1,4}-[0-9]{1,4}){0,},?\s{0,})+$|^(全部)$|^([0-9]{1,4}-[0-9]{1,4}){0,},?\s{0,}$/它几乎可以正常工作,只有1个主要问
我在JavaScript中定义了一个函数来替换所有的-,_,@,#,$和\(它们是可能的分隔符)和/(有效分隔符)。我的目标是将任何字符串如"1394_ib_01#13568"转换为"1394/ib/01/13568"functionreplaceCharacters(input){pattern_string="-|_|@|#|$|\u005C";//usingcharacterUnicode//pattern_string="-|_|@|#|$|\";//usingoriginalcharacter//pattern_string="-|_|@|#|$|\\";//using"\\
我认为这个正则表达式应该匹配一个html开始标记。varresults=html.match(/]*?)>/);我看到它应该首先捕获,但后来我很困惑这个捕获(\/?)完成。我的推理是否正确([^>]*?)>搜索除>以外的所有字符>=0次?如果是这样,为什么(\w+)抓捕有必要吗?不属于[^>]*?的范围吗 最佳答案 逐个标记:/开始正则表达式匹配文字(\/?)匹配0或1(?)文字/,由\转义(\w+)匹配一个或多个“单词字符”([^>]*?)懒惰*匹配零个或多个(*?)任何不是>的东西>匹配文字>/结束正则表达式懒惰地*-添加“?”
这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭7年前。在javascript中测试我的正则表达式时,我似乎总是得到一个奇怪的结果。这是我的fiddle:http://jsfiddle.net/s5fYf/15/这取self正在构建的网络项目。我将一组验证对象传递到我的验证函数中,该函数遍历它们,根据值验证每个规则。如果一个为假,它应该停止循环并返回一个返回对象,该对象从失败的规则中获取消息和cssClass。问题是即使正则表达式测试通过,验证方法似乎也返回false,这应该是不可能的!所以我觉得我错
我正在用javascript编写一个简单的模板函数。我的模板加载正常,现在是我需要将内容解析为占位符的部分。一个模板的例子是:{{name}}is{{age}}这些是动态的,所以理想情况下我想使用正则表达式来根据它们的名称匹配和替换占位符,例如{{name}}将被加载到javascript数组中的内容替换,例如data.namedata.age这是我的正则表达式:/\{\{(.*?)\}\}/这工作正常,但经过大量搜索后,我无法找到遍历每个正则表达式匹配项的定义方法。提前致谢 最佳答案 好吧,首先您需要正则表达式上的g标志。这告诉J
我想删除空标签,例如,这样:Thisisreditalic将被清理为:Thisisreditalic我在javascript中有这个RegEx,但它删除了空标签,但它也删除了这个:"italic"str=str.replace(//gim,"");我错过了什么? 最佳答案 您将“非空格”作为您的字符类,这意味着“italic”将匹配。正则表达式的前半部分将匹配“italic”,后半部分将匹配“”。(我用方括号来显示每个[\S]+匹配的内容。)改变这个://对此:/][^>]*>]+>/总的来说,您确实应该使用合适的HTML处理器,但
这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭6年前。我对这怎么可能感到困惑......varmatcher=newRegExp("d","gi");matcher.test(item)上面的代码包含以下值item="DouglasEnas"matcher=/d/gi然而,当我连续运行matcher.test函数时,我第一次运行时得到true,第二次运行时得到false。matcher.test(item)//truematcher.test(item)//false如果我使用正则表达式,例如/d/
如何编写一个RegEx模式来测试一个字符串是否包含多个具有以下结构的子字符串:"cake.xxx"xxx是任何东西,但不是“奶酪”、“牛奶”或“黄油”。例如:“我有一个cake.honey和cake.egg”应该返回true,但是“我有一个蛋糕。**牛奶**和cake.egg”应该返回false。 最佳答案 这就是你想要的吗?^(?!.*cake\.(?:milk|butter)).*cake\.\w+.*查看hereonRegexr如果包含“cake.XXX”,则匹配完整行,但如果包含“cake.milk”或“cake.butte