word
さまざまな文字列を入力し、新しい要素の ID になる変数があります。文字列が有効なhtml IDになることを確認したいと思います。this: answerで正規表現に出くわしましたが、 if else ステートメントに入れる方法がわかりません。これは私が試したものです:
if (/[A-Za-z][-A-Za-z0-9_:.]*/.test(word) === false)
{
return findIt(i);
}
以下の解決策をいくつか試してみましたが、うまくいきましたが、完全ではありませんでした。空白または引用符のいずれかが原因だと思います。私は本質的に完全なランダム文字から ID を作成しているので、引用符や空白のない英数字の文字列のみを許可する正規表現が必要です。以下は、現在かなりうまく機能している2つの組み合わせですが、より良い答えがあるはずです.
function isValidId(s) {
return /^[^\s]+$/.test(s);
}
if (isValidId(word)===false){
console.log('bad '+word);
return findIt(i);
}
else if(/^[A-Za-z][-A-Za-z0-9_:.]*$/.test(word) === false)
{
console.log(word+" had junk");
return findIt(i);
}