替换c#函数bijJquery在不知道如何进行故障排除的情况下不起作用
Replacing c# function bij Jquery not working without knowing how to troubleshoot
我正试图用javascript/Jquery方法替换ASP.NET(C#)服务器端方法。我是Jquery的新手,但在开始使用正则表达式之前一切都很顺利。
我在ASP.NET C#中的代码
if ((Regex.Match(postcode.Trim(), @"^[1-9]'d{3} ?[a-zA-Z]{2}$")).Success)
{
return Regex.Replace(postcode.Trim(), @"(^[1-9]'d{3})( ?)([a-zA-Z]{2}$)", "$1$3").ToUpper();
}
else
{
throw new Exception("Postcode incorrect");
}
在Jquery中,我暂时只想通过手动输入正确的字符串来进行替换。
我创建了一个函数,比如:
function FormatDutchPostalCode() {
var postcode = $("#Text1").val();
postcode = postcode.replace(/(^[1-9]'d{3})( ?)([a-zA-Z]{2}$)/, $1$3);
$("#Text1").val(postcode);
}
我从文本框中得到了值,到目前为止还不错。但当替换时,浏览器似乎退出了功能(在IE9和FF10.0.1中测试)
我做错了什么,是否可以对Jquery/Javascript进行故障排除。我见过firebug可以设置断点,但我找不到是否会发生错误(如果是的话,是哪一个)。
这里是C#函数到JS的端口。它使用IIFE来缓存正则表达式,而不会污染当前的执行范围。
jsFiddle
var FormatDutchPostalCode = (function() {
var reg = /^([1-9]'d{3})'s?([a-z]{2})$/i;
return function(){
var postcode = $.trim($("#Text1").val());
if (postcode && postcode.match(reg) )
{
return postcode.replace(reg, "$1$2").toUpperCase();
}
else
{
throw new Error("Postcode incorrect");
}
};
}());
您需要使用'$1$3'
或/$1$3/
作为替换模式。目前,您已经将替换模式放置在中,而没有将其用作字符串或正则表达式模式。
看看这个jsFiddle链接,它显示了一个有效的解决方案。
您还可以通过删除可选空间的捕获组来简化您的模式,然后您可以使用现有的捕获组执行替换:
- 图案:
/^([1-9]'d{3}) ?([a-zA-Z]{2})$/
- 替换:
'$1$2'
(仅存在2组)
要使用Firebug或开发人员工具,您应该能够使用F12键启动该工具。您可以直接在控制台窗口中测试您的替换,或者从脚本选项卡调试脚本(选择相关的JavaScript文件),并通过右键单击并添加断点或单击左侧的行号在您感兴趣的行上放置断点。
查看本文了解更多详细信息:针对初学者的JavaScript调试。
相关文章:
- JS条件故障排除
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- 对 Drupal 站点的客户端 JS 问题进行故障排除
- iMacros机架名称故障排除
- jQuery输入值故障排除
- JavaScript数学&警报故障排除
- 对 AJAX XMLHTTP 对象创建进行故障排除
- 附加 JSON 对象编号 - 故障排除
- JSON - 如果语句故障排除
- 基本调用函数故障排除
- 对使用 iframe 的简单 jquery 展开/折叠进行故障排除
- 对简单的 JavaScript 幻灯片进行故障排除
- Dygraph 对 CSV 进行故障排除
- 对无限循环错误进行故障排除
- 使用 JS 进行故障排除
- jQuery .hover 函数故障排除
- 如何对以下 js 索引脚本进行故障排除
- TypeError: undefined不是一个函数——需要排除故障
- 如何测试或排除故障?Ionic框架基于node.js(使用Angular.js)
- 你能帮我排除故障吗?