Tag: 正则表达式

Javascript Regex将文本字段限制为仅限数字(必须允许不可打印的键)

我收到了以前开发人员的PHP / JS代码,我需要在手机号码字段中添加号码validation。 我已经有了HTMLvalidation,但是我需要添加一个,如果有人按下了无效的密钥,它不会显示只是为了稍后用红色突出显示该字段,因为它包含无效的输入。 我已经看过很多正则表达式并且尝试了它们,但是它们或者我需要的效果是:如果输入了字母或特殊字符,不接受也不显示,所有其他输入(数字,键)被接受(我需要根本不显示无效字符,不显示然后删除)。 现在最有效的正则表达式是这样的: function filterNonDigits(evt) { var event = evt || window.event; var keyentered = event.keyCode || event.which; keyentered = String.fromCharCode(keyentered); //var regex1 = /[0-9]|\./; var regex2 = /^[a-zA-Z.,;:|\\\/~!@#$%^&*_-{}\[\]()`”‘?\s]+$/; if( regex2.test(keyentered) ) { event.returnValue = false; if(event.preventDefault) event.preventDefault(); } 当我使用注释的regex1(IF条件反转)时,自然它将输入限制为只有数字,从而阻止所有键,如Delete,BackSpace等。当使用regex2时,我仍然无法按下删除或小键盘上的数字。 所以我的问题是,上面的代码可以修改为只接受数字而且还允许键吗? 另一个重要的一点是,我需要一种不对这些键使用键码(8,24等)的方法,以确保可以使用所有键盘类型。 新更新: 所以我的解决方案如下:如果存在“oninput”属性,我使用Ehtesham提供的解决方案,如果不存在,则备份使用Rohan Kumar提供的解决方案。 所以它是这样的: if (obj.hasOwnProperty(‘oninput’) || (‘oninput’ in obj)) […]

Jquery PO BOXvalidation

我查看了一些较旧的post,但仍然对正在发生的事情感到困惑。 我有一个不允许邮政信箱的运输表格所以我试图找到一个validation器来查看并确保输入字段中没有PO。 我确保每个字段都填写了这段代码,但想知道我如何能够在PO盒中validation它。 注意:这是我实际表单中的单独文件 $( document ).ready( function() { $( ‘#shipping’ ).submit( function() { var required_fields = new Array( ‘name’, ‘service’, ‘company’, ‘contact’, ‘street’, ‘city’, ‘state’, ‘zip’, ‘projectnum’ ); for( j in required_fields ) { var theRequiredField = required_fields[j] var inputField = $( ‘[name=”‘ + theRequiredField + ‘”]’ ) if( inputField.val() == ” ) { […]

jquery转义方括号来选择元素

考虑一个输入元素 这里输入字段是动态生成的。 我需要选择那个字段。 所以我用过, alert($(‘#meta[152][value]’).val()); 但这似乎无效。 搜索后我发现,“方括号”需要像#meta\\[152\\]\\[value\\]一样进行转义 那怎么办呢? 我目前使用此代码, var id = “#meta[152][value]” // (I get this value by another method) I need the escaping to be done here. So that i can use as / **我需要使用正则表达式转换id的值,替换或任何其他方法来获取#meta \ [152 \] \ [value \]而不是手动** / alert($(id).val()); 您的建议会有所帮助!

使Javascript正则表达式不区分大小写

我正在使用一个jquery函数,我发现在div中找到单词并突出显示它们。 我正在使用它和搜索工具,因此案例并不总是与单词完全匹配。 如何将其转换为不区分大小写? $.fn.highlight = function(what,spanClass) { return this.each(function(){ var container = this, content = container.innerHTML, pattern = new RegExp(‘(>[^<.]*)(' + what + ')([^<.]*)','g'), replaceWith = '$1$2$3’, highlighted = content.replace(pattern,replaceWith); container.innerHTML = highlighted; }); }

在javascript中屏蔽最后4位数字

在这里,我使用正则表达式模式来掩盖信用卡号码的最后4位数字 $(‘#ccnumber’).html(ccnbr); //ccnumber refers to div ID $(‘#ccnumber’).text(function(_,val) { return val.replace(/\d{12}(\d{4})/, “************$1”); }); 它仅适用于16位数的信用卡号码。 但是,我需要用*来掩盖输入的数字(可能是10或11)并显示最后4位数字。 在javascript / Jquery中有可能吗? 的jsfiddle

如何在JavaScript中用替换\ n?

我有一个textarea,我在用户按下回车时插入\n 。 来自此textarea的代码通过jQuery.ajax()发送到WCF服务。 我无法在数据库中保存\n ,因为它不会在使用该服务的其他应用程序中显示。 如何用标签替换\n ? 解 很多人尝试使用/ g(全局修饰符)使用Javascript Regex。 最后,我已经插入了两次,我不知道为什么,我唯一的猜测是在keypress事件上的jQuery创建了我调试的双\ n。 $(‘#input’).keypress(function (event) { if (event.which == ’13’) { inputText = $(‘#input’).val() + ‘\n’; $(‘#input’).val(inputText); } });

javascript检查正则表达式是否适用

首先,这是我的代码片段: var str = ‘some german textsome english text’; var match = str.match(/de–>([^]+>([^<]+)/i); var textInDe = match[1]; var textInEn = match[2]; 我有这个正则表达式validation(感谢The Mask),效果很好。 现在,我想用if语句检查这个正则表达式是否适用于某些字符串。 我正在使用Javascript jquery。 提前致谢 :)

为什么jQuery的电子邮件validation正则表达式如此简单?

我们都知道正确validation电子邮件的正则表达式会非常复杂 。 但是,jQuery的validation插件有一个较短的正则表达式(由Scott Gonzalez提供 ) ,只有几行: /^((([az]|\d|[!#\$%&’\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]) +(\.([az]|\d|[!#\$%&’\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)| ((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21| [\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f] |[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)? (\x22)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d| [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])* ([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]| [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]) ([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]| [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/ 与众所周知的怪物相比,为什么这么“简单”? 是否存在一个正则表达式失败而另一个正式成功的情况(案例是有效还是无效的电子邮件)?

如何使用javascript替换来自jquery数据属性的链接的哈希标记

我正在尝试做同样的事情在这个问题中改变#hash标签链接页面加载但是我想因为我从jquery对象获取字符串data-caption属性有些东西不能正常工作。 我有这样的DOM元素 它基本上是一个加载到模态的缩略图然后我试图抓住属性标题并从任何哈希标签创建链接 var caption = anchor.attr(‘data-caption’) ? anchor.attr(‘data-caption’) : null; console.log(caption); 其中变量锚是代表链接的jquery对象 我可以看到有一个标题,如果我检查它打印的日志“#drink from somewhere #fun” 所以现在把它扔进一个正则表达式替换fn caption.replace(/#(\S*)/g,’$1′); 然后将标题附加到DOM并激活链接。 但是字幕字符串没有任何反应我只是得到了我输入的相同的东西。 **编辑答案愚蠢的错误忘记将返回值赋给变量 var captionLinks = caption.replace(/#(\S*)/g,’$1′);

如何在JavaScript中提取当前文档路径的URL的文件名?

我正在尝试在没有任何参数的情况下在Javascript中提取当前文件名。 $(location).attr(‘href’).match(/([a-zA-Z\-\_0-9]+\.\w+)$/); var current_path = RegExp.$1; if ((current_path == ‘index.html’) || …) { // something here } 但是当您访问http://example.com/index.html?lang=ja时,它根本不起作用。 当然,文件名将随机更改。 任何的想法?