0

私はこの正規表現を持っています:

var RE_SSN = /^[A-Åa-å0-9,\!\-\?\""\. ]{3,999}$/; 

JS関数で使用するもの

function checkSsn(ssn){

 if (RE_SSN.test(ssn)) {    
  javascript:addAppointment(document.forms[0])
  alert("YES");
 } else {
    alert("NO");
 }
}

Chromeと入力12345Testすると、正規表現が渡されます。それがポイントです。ただし、IEでは、文字列を数字で始めることはできません。IEは私の人生を惨めにするためだけに作られているように思えます。どうすればこの問題を解決できますか?

4

2 に答える 2

1

(私が推測する)ノルウェー語のアルファベットの数字と文字を許可したい場合は、ユニコードシーケンスを使用してこの正規表現を試してください

var RE_SSN = /^[a-zA-Z\u00C5\u00C6\u00D8\u00E5\u00E6\u00F8\!\-\?\""\. ]{3,999}$/; 

どこ

\u00C5 > Å  
\u00C6 > Æ   
\u00D8 > Ø  
\u00E5 > å  
\u00E6 > æ  
\u00F8 > ø 

お役に立てれば

于 2012-04-23T12:23:52.057 に答える
1

あなたの問題は、A-Åa-å解釈が異なる構造です。TIEはその範囲にあるとは考えていません。

これは、文字セットの検出に関係している可能性があります。スクリプトは UTF-8 でエンコードされていますか? UTF-8 BOM で開始されますか? そうでない場合は、ブラウザを同じように動作させることで、おそらく役立つでしょう。

第二に、あなたの意図がA-Åa-å.

正規表現を変更して、文字をより自然な範囲に分割するA-Za-zÅåか、範囲を完全に拡張することをお勧めします。

于 2012-04-23T12:24:20.300 に答える