2012-02-09 69 views
0

我说西班牙语,所以我使用了很多重音标记(á,é..)。无论何时我需要写它们,我都使用áé等等。如何管理口音标记(书面口音)

现在我有一个问题,因为我想比较两个句子是否不同,为了继续我的功能,但它不起作用。

这是我正在尝试做什么的解释。

有一个输入具有给定的值,向用户解释他需要在该输入中写入什么。当用户点击输入时,给定的值将消失,所以用户写入新的值。现在,我有了一个函数,它接受了新的价值,并用它做了一些事情(不相关)。我希望函数能够这样做,只要这个值与最初给出的值不同时,确保该函数仅在用户写入内容时才起作用。我的问题是给定的值有一个Accent标记,所以当我进行比较时,它总是会执行该函数的其余部分。

下面是一些代码,以使自己清楚。

<input type="text" id="proyecto" value="&Aacute;rea donde oper&oacute; el proyecto" /> 

<script type="text/javascript"> 
function proyecto(){ 
    var proyecto = document.getElementById("proyecto").value; 
    var aux1 = "&Aacute;rea donde oper&oacute; el proyecto"; 
    var aux2 = "Áreas donde operó el proyecto"; 

    if (proyecto != aux1) 
     alert("DO THE REST OF THE FUNCTION"); 
    if (proyecto != aux2) 
     alert("DO THE REST OF THE FUNCTION"); 
} 
</script> 

我使用了一个函数,然后用户点击输入,它清除输入将其留空。如果用户不写任何内容,则会再次显示值。

我希望我自己清楚。

非常感谢!

+2

你不应该比较HTML文本,并期待着理智的结果。只要坚持整个文字。 – Quentin 2012-02-09 16:55:16

+1

如果您想清除文本,只需将当前的'.value'与'.defaultValue'进行比较,以查看在加载页面时是否在输入中包含了该值。 – MetalFrog 2012-02-09 16:57:37

+0

谢谢@MetalFrog,这正是我所需要的,.defaultValue – mauguerra 2012-02-09 17:02:05

回答

1

您可以使用正则表达式。就像这样:

<script type="text/javascript"> 
function proyecto(){ 
    var proyecto = document.getElementById("proyecto").value; 
    var aux = /[AÁ]reas donde oper[oó] el proyecto/i; 
    if (!aux.test(proyecto)) 
     alert("DO THE REST OF THE FUNCTION"); 
} 
</script> 

参见:http://www.w3schools.com/jsref/jsref_obj_regexp.asp

+0

正则表达式在这里完全没有必要。所有需要做的事情是在“proyecto”和“Áreasdondeoperóel proyecto”之间进行不平等检查。 – daniel 2012-02-09 17:20:25