无法从网页中选择正则表达式来验证文本

时间:2014-04-07 08:39:13

标签: jquery regex

我想验证一些用户输入英语短语与正则表达式(允许一些变化)。一个例子是“你能去哪里?”反对/^(W|w){1}here\s{1,2}can\s{1,2}you\s{1,2}go\s{0,1}\??$/我正在使用一个jquery ui对话框,其中包含一个标识为"form#t2e_form"的表单和一个标识为"form#t2e_w"的输入。这是代码:

jQuery("span.t2e_icon").on("click", function(evnt) { 
  t2e_dlog.dialog("open");
  evnt.stopPropagation();
  // remove the dialog box title bar
  jQuery("#ui-dialog-title-dialog").hide();
  jQuery(".ui-dialog-titlebar").removeClass('ui-widget-header');       
  var elementId = evnt.target.id,
  englishTextId = ("span#t1ee" + elementId.substring(7)),
  regexId = ("regex" + elementId.substring(7)),

  regexText =( /^(W|w){1}here\s{1,2}can\s{1,2}you\s{1,2}go\s{0,1}\??$/);    
  var form_config  ='<div id="t2e_modal"><p>Please enter the English text here</p><form id="t2e_form" action="#"><input type="text" id="t2e_w" name="t2e_w"          size=50><input id="t2e_submit" type="submit" value="Submit"></form><span id="output"></span></div>';
  jQuery("div#t2e_dialog").append(form_config);
  jQuery( "form#t2e_form" ).submit(function(event) { 
      if (regexText.test(jQuery( "input#t2e_w" ).val())) {
      jQuery( "span#output" ).text( "Validated..." ).show().fadeOut( 1000 );
    } else {                                                                                                                                 
      jQuery( "span#output" ).text( "Not valid!" ).show().fadeOut( 1000 );
    }
    event.preventDefault();
  });   

这样可行但是如果替换了regexText的以下值以便可以选择其他正则表达式(如下面的html中那样)则代码将失败

regexText = document.getElementById(regexId).innerHTML;   

相关的html是:

  <p id="regex01">/^(W|w){1}here\s{1,2}can\s{1,2}you\s{1,2}go\s{0,1}\??$/ </p>
  <p id="regex02">/^(W|w){1}here\s{1,2}can\s{1,2}you\s{1,2}work\s{0,1}\??$/ </p>
  ... 

如果有人能提供帮助那就太棒了,谢谢

0 个答案:

没有答案