草庐IT

javascript - 搜索价格文本,执行功能,并替换为输出

我希望能够在给定页面上找到与正则表达式匹配的价格文本,对其执行函数,然后替换输出。示例:Thetotalis$12RegEx匹配$12的价格文本将12乘以2=24用24替换12变成:Thetotalis$24这是一个JSFiddlewithmytestcode(请确保引用我上面的问题以了解我所追求的,谢谢!)这是regExIamusing 最佳答案 首先,您的正则表达式存在缺陷。它可以固定和简化为:/\$([\d,]+(?:\.\d+)?)/g它的设计使得第一个捕获组将是没有美元符号的数字本身。它会找到一个可选的美元符号,后跟至少一

正则表达式 : null is lower case letter?

这个问题在这里已经有了答案:WhydoestheJavaScriptRegExp/^\w+$/matchundefined?(3个答案)关闭7年前。谁能解释为什么/[a-z]/.test(null)返回true而/[A-Z]/.test(null)返回false?null(或undefined或false)是否被视为Javascript中的小写字母?谢谢。在Chrome和Firefox上测试。

Javascript 条件正则表达式 if-then-else

我试图将条目限制为特定格式。如果条目有5500或5100,例如01\01-5500-000-00那么我想要这个:^[0-9]{2,}\\[0-9]{2}\-[0-9]{4}\-[0-9]{3}\-$但是如果条目有5500或5100以外的任何东西,我想要这个:^[0-9]{2,}\\[0-9]{2}\-[0-9]{4}\-[0-9]{3}\-[0-9]{2}$如何使用ifthenelse想法来实现这一点? 最佳答案 JavaScript正则表达式引擎不支持条件正则表达式语法,但它可以通过包含2个替代项的非捕获组解决:具有积极的前瞻性和

用于验证数字是否以前导零开头的 Javascript 正则表达式

我需要使用正则表达式验证一些输入。以下是一些示例用例和预期结果。0001-Matched001-Matched01-Matched00.12312-Matched000.1232-Matched1-Notmatched20-Notmatched0.1-Notmatched0.123123-Notmatched像这样的正则表达式会是什么样子?如果第一个字符是0而第二个字符是numerical[0-9]那么它是无效的。我已经试过了,但没用。[0][0-9] 最佳答案 试试这个正则表达式:^0[0-9].*$它将匹配任何以0后跟一个数字开

JavaScript:使用 String.split 和正则表达式优先级避免空字符串

我正在创建一个语法荧光笔,我正在使用String.split从输入字符串创建标记。第一个问题是String.split会创建大量空字符串,这会导致一切都比原本应该慢得多。例如,"***".split(/(\*)/)->["","*","","*","","*",""]。有没有办法避免这种情况?另一个问题是正则表达式本身的表达式优先级。假设我正在尝试解析C风格的多行注释。即/*注释*/。现在假设输入字符串是"/****/"。如果我使用以下正则表达式,它会起作用,但会产生很多额外的标记(以及所有那些空字符串!)。/(\/\*|\*\/|\*)/更好的方法是阅读/*、*/,然后阅读所有剩余的

javascript - 这些正则表达式之间有什么区别

我正在阅读Ionic的源代码。我遇到了这个正则表达式,我对它感到很困惑。([\s\S]+?)好的,它对每个字符进行分组,无论是空格还是非空格???为什么他们不这样做(.+?)我错过了什么吗? 最佳答案 .匹配除换行符之外的任何符号。为了使其匹配换行符,在大多数语言中都有一个修饰符(dotall,singleline)。但是,在JS中,并没有这样的修饰符。因此,解决方法是使用[\s\S]字符类来匹配任何字符,包括换行符,因为\s将匹配所有空格和\S将匹配所有非空格字符。同样,可以使用[\d\D]或[\w\W]。此外,还有一个[^]模式

Javascript RegExp 非捕获组

我正在编写一组正则表达式来将CSS选择器转换为ID和类数组。例如,我希望'#foo#bar'返回['foo','bar']。我一直在努力实现这一目标"#foo#bar".match(/((?:#)[a-zA-Z0-9\-_]*)/g)但当非捕获前缀?:应忽略#字符时,它会返回['#foo','#bar']。是否有比对每个返回字符串进行切片更好的解决方案? 最佳答案 您可以在循环中使用.replace()或.exec()来构建数组。使用.replace():vararr=[];"#foo#bar".replace(/#([a-zA-Z

Javascript 正则表达式第一次工作正常但第二次不行,第三次再次工作而不是第四次等等

Javascript正则表达式第一次工作正常但第二次不行,第3次再次工作而不是第4次等等:(脚本:varreg=/[^\w]/gi;functioncheckNonWordChars(){varstr=$("#TestTextbox").val();if(reg.test(str)){alert('!!!Non-WordCharExists!!!');}else{alert('inputaccepted');}}HTML:如果我点击按钮一次,它会触发一个警告说“!!!存在非字字符!!!”但是如果我再次点击它,它会触发一个警告说“输入已接受”:( 最佳答案

JavaScript 以编程方式创建正则表达式

我知道我可以像这样创建一个javascript替换:str=str.replace(/mytarget/g,'somevalue');这将替换所有出现的文字mytarget。但是,我想在正则表达式替换中使用大量的单词/短语,并且由于正则表达式只是语言元素(声明时它们没有包含在字符串中),我找不到以编程方式声明正则表达式的方法除非我对它们进行硬编码。所以如果我有:vararr=['word','another','hello'];我要生产:str=str.replace(/word/g,'somevalue');str=str.replace(/another/g,'somevalue'

Javascript 替换匹配组

我正在尝试构建一个文本格式化程序,它将根据换行符向文本添加p和br标签。我目前有这个:s.replace(/\n\n/g,"\n\n");这对于创建段落结尾和开头非常有效。但是,尝试查找实例并不是很有效。尝试进行匹配的组替换是行不通的,因为它会忽略括号并替换整个正则表达式匹配:s.replace(/\w(\n)\w/g,"\n");我已经尝试删除g选项(仍然替换整个匹配项,但仅在第一个匹配项中)。还有其他方法吗?谢谢! 最佳答案 您可以捕获不想替换的部分,并将它们包含在替换字符串中,后跟$和组号:s.replace(/(\w)\n(