私は、次の複数行の文字列は、各行が新しいライン使用して表現された場合、次のような<pre>
を使用して表示してい:Javascript + ReactJS:正規表現.match()が一貫して返されないのはなぜですか?
SchoolDistrictCode:291238-9
location_version:3.4
build:e9kem
をそして私はbuild:e9kem
アウトを解析したい、と毎回マルチの内容でしょうラインは異なります。しかし、それはすべてのbuild:
を持っています。そのようにそれを表示するために
const regexp = /^build:(.*)$/m;
//stringPar would vary every time
const stringPar = `SchoolDistrictCode:291238-9
location_version:3.4
build:e9kem`;
試み:
は私がそれを試みたことは正しく解析し、私が表示しようとすると、特定の複数行の文字列のために、それはUncaught TypeError: Cannot read property '1' of null
を返し
{stringPar.match(regexp)[1])};
stringPar.match(regexp)[1]
のような文字列ですが、console.log(stringPar.match(regexp)[1])のようにコンソールがログに記録されると、コンソールは文字列を正しく記録します。
何が問題になる可能性がありますか?
は、それは基本的に小道具が、それに渡されると、何度もレンダリングされていますコンポーネントの事前にありがとうと(ReactJSで)upvoteだろう/受け入れ答え
EDIT
。
export default class tableRow extends Component {
...
render() {
console.log(this.props.stringPar.match(regexp)[1]);
return (
<tr>
<td>
{/*Even tried {this.props.stringPar.match(regexp)[1]==null? " ": this.props.stringPar.match(regexp)} but still getting the same error*/}
<button>{this.props.stringPar.match(regexp)[1]}</button>
<td>
<tr>
)
}
}
*「特定の複数行の文字列」の場合*具体的な例を挙げてください。あなたの問題は、非同期コードとリンクすることもできます。同じコードブロックで失敗し、問題を説明する 'console.log'を持つコードスニペットを提供してください。あなたが得るエラーがキャッチされない例外TypeErrorが 'である場合 – trincot
@trincot編集 –
をご覧ください:プロパティを読み取ることができません「1」null'なのでのそれはthis.props.stringPar.match(正規表現)'のリターンは 'であることを意味し配列の値ではなくヌルを返します。なぜあなたが試したチェックがうまくいかなかったのでしょうか?正規表現が時々失敗するように見えます。 – jonowzz